通过分配改变React-Navigation的参数值是否正确:
navigation.state.params.number = 123;
而不是设置它:
navigation.setParams({ number: 123 });
我注意到第一种方式是同步的,这意味着我可以console.log(number)
下一行并获得指定的新值,而第二种方式是异步的意味着如果我console.log(number)
在下一行,我会得到旧的价值。
我需要在下一行访问该值的原因是state.params
在我的应用中保存搜索输入,并且我调用action creator在下一行执行搜索,因此必须更新在通话之前。
所以,问题,再次。这是以这种方式改变价值的正确方法吗?
答案 0 :(得分:1)
如果您需要在下一行分配的参数值,那么您可以直接使用您指定给变量的变量,而不是从参数中读取它。
let someValue = 'Foo';
navigation.setParams({ Bar: someValue });
console.log(someValue);
setParams
用于设置屏幕的参数,并使用您设置的参数更新navigationState
。如果直接设置它将无法正常工作。如果您需要在设置之后立即设置参数,我认为您可能会有一个不那么理想的逻辑。