如何通过 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() 中调用了这个方法。它正在更新我的第一个屏幕,因为我将从第二个屏幕返回。