merge 在 navigation.navigate (React Native) 中做了什么?

use*_*953 8 reactjs react-native react-navigation

我不明白mergenavigation.navigate 的作用是什么

navigation.navigate({
   name: 'Home',
   params: { post: postText },
   merge: true,
});
Run Code Online (Sandbox Code Playgroud)

代码参考取自https://reactnavigation.org/docs/params/

key*_*ysl 6

BlogPage假设您位于使用以下参数调用的路线或屏幕上

{ title: '标题', 作者: 'keysl' }

然后您使用以下命令导航到不同的博客文章

navigation.navigate({
  name: 'BlogPage',
  params: { title: 'B title' },
});
Run Code Online (Sandbox Code Playgroud)

因此,在 Navigation 5 之前,默认情况是合并此内容,因此上面的代码将生成一个带有如下参数的页面

{
  title: 'B title',
  author: 'keysl' // note that keysl is not passed at the code below
}
Run Code Online (Sandbox Code Playgroud)

这并不理想并且容易造成混乱。因此,React Navigation 团队删除了这个默认设置。尽管它在不同情况下很有用。

现在为了复制上面的功能,merge:true引入了。

我找不到迁移声明,但这就是它的要点