我可以在v3中按状态将动态道具传递给组件吗?

时间:2017-07-12 15:09:37

标签: javascript react-router

我想在v3中按状态将动态道具传递给组件。但它没有用。

当我使用下面的代码时,它显示警告“[react-router]你无法改变;它将被忽略”。然后在组件中,它始终显示this.props.userId为空。

class Root extends React.Component{
    constructor(props) {
        super(props);
        this.state = {
            userId: null,
        }
    }
    componentDidMount() {
        this.setState({
            userId: "123",
        })
    }
    render() {
        return (
            <Router history={browserHistory}>
                <Route path="/TeachingResourceManagement">
                    <IndexRoute component={(props) => (<Login {...props} onChange={this.handleUserIdChange.bind(this)} userId={this.state.userId} />)}/>   
                </Route>
            </Router>
    )}
}
render(<Root />, document.getElementById("container"))

P.S。 我曾尝试使用下面的代码(使用渲染来传递道具),但它也无法正常工作,甚至无法正常渲染场景。

<Router history={browserHistory}>
    <Route path="/TeachingResourceManagement">
        <IndexRoute render={(props) => (<Login {...props} onChange={this.handleUserIdChange.bind(this)} userId={this.state.userId} />)}/>   
    </Route>
</Router>

0 个答案:

没有答案