Я передаю реквизит и функцию на вторую страницу навигатора следующим образом:Реагировать Родные реквизит не обновляя с навигатором
unlock: function(object) {
switch(true) {
case (object==0): this.setState({a: false});break;
case (object==1): this.setState({b: false});break;
case (object==2): this.setState({c: false});break;
case (object==3): this.setState({d: false});break;
default: this.setState({e: false});break;}
},
Затем проходит реквизит через навигатор:
this.props.navigator.push({
title: title,
component: component,
passProps: {unlock: this.unlock,a: this.state.a, b: this.state.b,c: this.state.c,d: this.state.d, e: this.state.e}
});
Но когда я вызываю функцию на второй странице навигатора, она обновляется нормально, но только на домашней странице. Информация на этой второй странице навигатора не обновляется, пока я остаюсь на странице. Так, например, этот код:
<Text>{this.props.a}</Text?
Показывает значение до активации функции на второй странице. Мне нужно вернуться на главную страницу, а затем снова вернуться ко второй странице, чтобы увидеть обновленное значение. Это похоже на навигатор. С помощью любого другого метода он мгновенно обновляется.
Единственное обходное решение, которое у меня было, состояло в том, чтобы установить состояние на второй странице, а также настроить реквизиты для главной страницы. Тем не менее, это кажется немного ненужным обходным решением.
Если вам нужно разделить состояние между компонентами, я бы предложил использовать контейнер потока, например, alt js. http://alt.js.org/, у меня была та же проблема, что и контейнер для флюсов. –
Используете ли вы React.createClass или React.Component? И вы определили какие-либо PropTypes? – BigPun86
Нет, я ничего особенного не делал, я думал, что это нормальная функциональность. его React.createClass. Он просто обновляет значение с помощью переданной функции, такой как this.props.unlock на второй странице навигатора. Но указанное значение не изменяется до возврата на домашнюю страницу, а затем снова возвращается на вторую страницу. – Hasen