提问者:小点点

在类和功能组件之间传递数据-React JS


我正在使用React和React路由器。

这是我的第一个组成部分:

import React from 'react';

class SomeClass extends React.Component{
    constructor(props){
        super(props);
        this.state = {
              someObj: {
                something: "",
                someOtherThing: ""
              },
            authenticated: false
        };
    }

}



export default SomeClass;

这是我的ProtectedRoute组件:const ProtectedRoute=({auth,component:component,…rest})=

            if(auth){
                return(<Component {...props} />);
            }

            if(!auth){
                return(<Redirect to={{path: "/", state:{from: props.location}}} />);
            }
        }} />
    );
};

export default ProtectedRoute;

这是我的导航组件:

import React from 'react';
import { BrowserRouter as Router, Switch} from 'react-router-dom';
import ProtectedRoute from './ProtectedRoute';
import SomeClass from './SomeClass';

function Nav(){
    return(
        <Router>
            <Switch>
                <ProtectedRoute exact path="/somepage/abc" component={SomeClass} auth={SomeClass.props.authenticated} />  //getting an error here because of SomeClass.props.authenticated
            </Switch>
        </Router>

    );
}


export default Nav;

我的问题:

在我的导航功能组件中,有

当我上课的时候。道具。我得到以下错误:

无法读取未定义的属性已验证


共1个答案

匿名用户

你可以用道具把它传下去

someClass中:

  • 导入资产净值
<Nav auth = {this.state.authenticated}/>

Nav组件应如下所示:

function Nav(props){
    return(
        <Router>
            <Switch>
                <ProtectedRoute exact path="/somepage/abc" component={SomeClass} auth={props.auth} /> 
            </Switch>
        </Router>

    );
}