在React Navigation中分配vs设置参数

时间:2017-10-09 17:27:16

标签: react-native redux react-navigation

通过分配改变React-Navigation的参数值是否正确:

navigation.state.params.number = 123;

而不是设置它:

navigation.setParams({ number: 123 });

我注意到第一种方式是同步的,这意味着我可以console.log(number)下一行并获得指定的新值,而第二种方式是异步的意味着如果我console.log(number)在下一行,我会得到旧的价值。

我需要在下一行访问该值的原因是state.params在我的应用中保存搜索输入,并且我调用action creator在下一行执行搜索,因此必须更新在通话之前。

所以,问题,再次。这是以这种方式改变价值的正确方法吗?

1 个答案:

答案 0 :(得分:1)

如果您需要在下一行分配的参数值,那么您可以直接使用您指定给变量的变量,而不是从参数中读取它。

let someValue = 'Foo';

navigation.setParams({ Bar: someValue });
console.log(someValue);

setParams用于设置屏幕的参数,并使用您设置的参数更新navigationState。如果直接设置它将无法正常工作。如果您需要在设置之后立即设置参数,我认为您可能会有一个不那么理想的逻辑。