存在某种方法吗?
当我使用{ navigation.goBack() }
时,我的更改未在之前的屏幕中更新,但使用navigate('MyObject', params )
时,无需其他代码即可进行更改以接收更改。
答案 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,我真的不能说太多,因为我没有那么多使用它。但是,它的目的是在屏幕之间共享值并轻松更新值。