在React Native中的navigation.goBack()之后可能强制屏幕更新?

时间:2018-03-20 02:04:41

标签: react-native

存在某种方法吗?

当我使用{ navigation.goBack() }时,我的更改未在之前的屏幕中更新,但使用navigate('MyObject', params )时,无需其他代码即可进行更改以接收更改。

1 个答案:

答案 0 :(得分:0)

我有两种方法可以帮助您实现这一目标。第一种是使用Redux,第二种是将功能传递到下一个屏幕,该屏幕将更新上一个屏幕。示例(针对第二种方法)如下:

export default class screenA extends Component {
  constructor(props) {
    super(props);
    this.state = {value: 0};
  }

  updateValue=(val)=>{
    this.setState({value: val});
  }

  openScreenB=()=>{
    this.props.navigation.navigate('screenB', {
      updateValue: this.updateValue,
    });
  }
}

export default class screenB extends Component {
  updateClassAValue() {
    const {params} = this.props.navigation.state;
    params.updateValue(20);
    this.props.navigation.pop();
  }
}

对于Redux,我真的不能说太多,因为我没有那么多使用它。但是,它的目的是在屏幕之间共享值并轻松更新值。