Reactjs convert class components to functional components

前端 未结 3 1584
渐次进展
渐次进展 2020-12-22 05:47

I am new in react. I want to use form stepper in my project. I found one library but in that library using class components. I am little confuse convert class components to

相关标签:
3条回答
  • 2020-12-22 06:33

    Functional components do not use state like a class. You can use the useState method with a functional component though. But to answer your question.

      class MyClassComponent extends Component {
         render() {
          return(
           // code
        )
       }      
     }
        export default MyClassComponent;
    

    Here is a functional component

    function MyFunctionalComponent() {
        return(
        //code
      )
    }
    export default MyFunctionalComponent;
    
    0 讨论(0)
  • 2020-12-22 06:46

    Replace your constructor and functions with this code, basically you don't need a constructor and 'this'.

    const [page, setPage] = React.useState(0);
    const [steps, setSteps] = React.useState([ 
            {title: 'Visitor Details'},
            {title: 'Personal Details'},
            {title: 'Nominee Details'}
            ])
    
    function nextPage() {
        setPage(page + 1)
      }
    
    function previousPage() {
        setPage(page - 1)
    }

    0 讨论(0)
  • 2020-12-22 06:50

    Check the code below:

    import React, {useState} from 'react'
    import {connect} from 'react-redux'
    import { Link } from 'react-router-dom'
    import PropTypes from 'prop-types'
    import Stepper from 'react-stepper-horizontal'
    import { Card } from 'reactstrap'
    
    import GeneralForm from './../../components/con/GeneralForm'
    import PersonalDetailsForm from './../../components/con/PersonalDetailsForm'
    import NomineeDetailsForm from './../../components/con/NomineeDetailsForm'
    
    const ConCreate = (props) => {
    
      const initStepsValue = [
        {title: 'Visitor Details'},
        {title: 'Personal Details'},
        {title: 'Nominee Details'}
      ]
    
      const [page, setPage] = useState(0)
      const [steps, setSteps] = useState(initStepValue)
    
      const nextPage = () => setPage(page + 1) 
      const prevPage = () => previousPage(page - 1)
    
    
      return (
        <Card>
           <Stepper steps={ steps } activeStep={ page } />
             {page === 0 && <GeneralForm onSubmit={nextPage} />}
             {page === 1 && (
               <PersonalDetailsForm
                 previousPage={previousPage}
                 onSubmit={nextPage}
               />
             )}
             {page === 2 && (
               <NomineeDetailsForm
                 previousPage={previousPage}
                 onSubmit={onSubmit}
               />
             )}
         </Card>
      )
    }
    
    ConCreate.propTypes = {}
    
    const mapDispatchToProps = {}
    
    const mapStateToProps = state => ({})
    
    export default connect(
      mapStateToProps,
      mapDispatchToProps
    )(ConCreate)
    
    0 讨论(0)
提交回复
热议问题