Вот файл, который вызывает у меня проблемы:
var Routers = React.createClass({
getInitialState: function(){
return{
userName: "",
relatives: []
}
},
userLoggedIn: function(userName, relatives){
this.setState({
userName: userName,
relatives: relatives,
})
},
render: function() {
return (
<Router history={browserHistory}>
<Route path="/" userLoggedIn={this.userLoggedIn} component={LogIn}/>
<Route path="feed" relatives={this.state.relatives} userName={this.state.userName} component={Feed}/>
</Router>
);
}
});
Я пытаюсь передать новые this.state.relatives
и this.state.userName
через маршруты в свой "feed" -компонент. Но я получаю сообщение об ошибке:
Предупреждение: [реактивный маршрутизатор] Вы не можете изменить; это будет игнорируется
Я знаю, почему это происходит, но не знаю, как еще я должен передавать состояния в свой "фид" -компонент. Я пытался исправить эту проблему за последние 5 часов, и я очень отчаялся!
Пожалуйста, помогите! Благодаря
РЕШЕНИЕ:
Ответы ниже были полезными, и я благодарен атестам, но они не были самым простым способом сделать это. Лучший способ сделать это в моем случае оказался таким: Когда вы меняете маршруты, вы просто присоединяете к нему сообщение:
browserHistory.push({pathname: '/pathname', state: {message: "hello, im a passed message!"}});
или если вы сделаете это по ссылке:
<Link
to={{
pathname: '/pathname',
state: { message: 'hello, im a passed message!' }
}}/>
источник: https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/location.md
В компоненте, который вы пытаетесь найти, вы можете получить доступ к такой переменной, как это, например:
componentDidMount: function() {
var recievedMessage = this.props.location.state.message
},
Надеюсь, это поможет!:)