Quantcast
Channel: Active questions tagged react-native+typescript - Stack Overflow
Viewing all articles
Browse latest Browse all 6287

Reactjs: How to convert typescript class to functional component

$
0
0

Here I am converting the typescript class component to functional components but facing some issues I don't know how to fix. Please give me a solution to fix this issue.

enter image description here

class component

import * as React from "react";import { render } from "react-dom";import { ReactMultiEmail } from "react-multi-email";import "react-multi-email/style.css";const styles = {  fontFamily: "sans-serif",  width: "500px",  border: "1px solid #eee",  background: "#f3f3f3",  padding: "25px",  margin: "20px"};interface IProps {}interface IState {  emails: string[];}class App extends React.Component<IProps, IState> {  state = {    emails: []  };  render() {    const { emails } = this.state;    console.log("emails", emails)    return (<div style={styles}><h3>react-multi-email</h3><ReactMultiEmail          placeholder="Input your Email Address"          emails={emails}          // onFocus={}          onChange={(_emails: string[]) => {            console.log("_email", _emails)            this.setState({ emails: _emails });          }}          getLabel={(            email: string,            index: number,            removeEmail: (index: number) => void          ) => {            return (<div data-tag key={index}>                {email}<span data-tag-handle onClick={() => removeEmail(index)}>×</span></div>            );          }        }        /><br /></div>    );  }}render(<App />, document.getElementById("root"));

funcional component

import * as React from "react";import { render } from "react-dom";import { ReactMultiEmail } from "react-multi-email";import "react-multi-email/style.css";const styles = {    fontFamily: "sans-serif",    width: "500px",    border: "1px solid #eee",    background: "#f3f3f3",    padding: "25px",    margin: "20px"  };interface IProps {}interface IState {emails: string[];  }export const Email = (props:any) => {    const [emails, setEmail] = React.useState([])    return (<div style={styles}><h3>react-multi-email</h3><ReactMultiEmail            placeholder="Input your Email Address"            emails={emails}            // onFocus={}            onChange={(_emails: string[]) => {              console.log("_email", _emails)              setEmail({ _emails });            }}            getLabel={(              email: string,              index: number,              removeEmail: (index: number) => void            ) => {              return (<div data-tag key={index}>                  {email}<span data-tag-handle onClick={() => removeEmail(index)}>×</span></div>              );            }          }          /><br /></div>      );}

I am a beginner in react js so I don't know if the right way of conversion or not please share valuable suggestions.


Viewing all articles
Browse latest Browse all 6287

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>