在 React Navigation 中分配与设置参数

Assigning vs setting params in React Navigation

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

navigation.state.params.number = 123;

而不是设置它:

navigation.setParams({ number: 123 });

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

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

那么,问题又来了。这样改值合适吗?

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

let someValue = 'Foo';

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

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