如何通过 react-native-router -flux 在 react-native 中更新后退(上一个)屏幕
How to update back(previous) screen in react-native by react-native-router -flux
我在我的应用程序中使用了 react-native-router-flux。
-我在第一个屏幕上使用参数,然后导航到第二个屏幕。
-在第二个屏幕上,我正在更新在第一个屏幕上使用的参数。
-我希望在我导航回该屏幕(第一个屏幕)时更新它。
我如何实现这个功能。
谢谢
@Vinzzz 是对的,最好的解决方案是使用 redux。但是在这里你如何在没有它的情况下完成这项工作。
当您导航到另一个视图时,您调用 action.OTHER_VIEW()
您可以将参数传递给此函数,该函数将通过与您的密钥对应的组件中的道具提供:"OTHER_VIEW"
举个例子:
routeA.js
constructor(props){
super(props);
var _data = this.props.dataFromRouteB || "";
this.state = {
data : _data
};
}
onPress(){
action.ROUTE_B({dataFromRouteA: this.state.data}); // navigate to route B
}
render(){
const {data} = {...this.state};
return(
<View>
<Text>{data}</Text>
<Button title="go to route B" onPress={()=> this.onPress()} />
</View>
);
}
routeB.js
componentDidMount(){
var a = this.props.dataFromRouteA; // a = ""
a = "hello";
action.ROUTE_A({dataFromRouteB:a}); // navigate to ROUTE_A , data will be available via props
}
我在没有使用 Redux 的情况下解决了这个问题。
将Screen First的api调用语句放在一个方法中(在First Screen上)并将其传递给第二个屏幕。在第二个屏幕上,我在 componentWillUnmount() 中调用了这个方法。它正在更新我的第一个屏幕,因为我将从第二个屏幕返回。
我在我的应用程序中使用了 react-native-router-flux。
-我在第一个屏幕上使用参数,然后导航到第二个屏幕。
-在第二个屏幕上,我正在更新在第一个屏幕上使用的参数。
-我希望在我导航回该屏幕(第一个屏幕)时更新它。
我如何实现这个功能。
谢谢
@Vinzzz 是对的,最好的解决方案是使用 redux。但是在这里你如何在没有它的情况下完成这项工作。
当您导航到另一个视图时,您调用 action.OTHER_VIEW()
您可以将参数传递给此函数,该函数将通过与您的密钥对应的组件中的道具提供:"OTHER_VIEW"
举个例子:
routeA.js
constructor(props){
super(props);
var _data = this.props.dataFromRouteB || "";
this.state = {
data : _data
};
}
onPress(){
action.ROUTE_B({dataFromRouteA: this.state.data}); // navigate to route B
}
render(){
const {data} = {...this.state};
return(
<View>
<Text>{data}</Text>
<Button title="go to route B" onPress={()=> this.onPress()} />
</View>
);
}
routeB.js
componentDidMount(){
var a = this.props.dataFromRouteA; // a = ""
a = "hello";
action.ROUTE_A({dataFromRouteB:a}); // navigate to ROUTE_A , data will be available via props
}
我在没有使用 Redux 的情况下解决了这个问题。
将Screen First的api调用语句放在一个方法中(在First Screen上)并将其传递给第二个屏幕。在第二个屏幕上,我在 componentWillUnmount() 中调用了这个方法。它正在更新我的第一个屏幕,因为我将从第二个屏幕返回。