javascript - 反应导航 Stack.Screen 中的 {...props} 是什么?
问题描述
这个页面{...props}
的意义是什么?
<Stack.Screen name="Home">
{props => <HomeScreen {...props} extraData={someData} />}
</Stack.Screen>
也没有{...props}
,我的应用程序运行良好。
解决方案
根据文档描述:
有时我们可能想要将额外的道具传递给屏幕。
为了传递额外的道具,它使用渲染器(渲染回调)函数。实际上,它是额外的,显然你的代码应该没有它。
正式用法如下:
<Stack.Screen
name="Home"
component={HomeScreen}
options={{ title: 'Overview' }}
/>
此外,在正式用法中React Navigation
,对屏幕组件进行优化以防止不必要的渲染。我建议您使用这种样式,但是如果您需要Stack.Screen
传递给渲染组件的其他道具,请使用渲染器版本,但请注意使用渲染器会删除整个给定的优化React Navigation
。
如果你想知道额外的道具是什么,请使用渲染器版本,然后在组件中使用console.log
它:HomeScreen
const HomeScreen = props => {
console.log(props);
return (
<View>
<Text>Home Screen</Text>
</View>
);
}
推荐阅读
- c# - 如何从系列列表中选择项目直到中断
- r - 如何创建包含 local_mock() 的函数?
- angular - “formDirective”被定义为“ControlContainer”类中的访问器,但在“ConnectArrayDirective”中作为实例属性被覆盖
- excel - 删除值 < 500 和舍入值 > 500 VB.net 的行?
- oracle - 如何将 CLOB 类型的参数传递给具有 100k+ 长度字符串的 Oracle 存储过程?
- python - 我们什么时候应该在我们的正则表达式中使用组?这里真正的优势是什么?
- winforms - C# Panel AutoScroll down using chromium
- swiftui - 如何获取在 TabView 中选择了哪个视图的值?
- sql - 使用 BigQuery 访问 Google Analytics 自定义维度
- excel - 连接特定列的字符串 (VBA)