javascript - React native navigation.setParams 没有设置任何新参数
问题描述
我想设置一个新函数作为参数,所以我使用props.navigation.setParams({
inside useEffect
。稍后,我想从我的headerRight:
按钮调用这个新功能。这是我的代码:
useEffect(() => {
props.navigation.setParams({
onPress: () => {
onSubmit();
},
});
}, []);
const onSubmit = () => {
console.log("on submit was pressed: ");
};
useLayoutEffect(() => {
props.navigation.setOptions({
headerRight: () => (
<Feather
style={{ padding: 20 }}
name="check"
size={24}
color="blue"
onPress={() => {
console.log(props);
const onPress = props.route.params; // it seems I dont have onPress property
if (onPress) onPress();
}}
/>
),
});
}, [props.navigation, username, bio, image, imageChanged, name]);
当我这样做console.log(props);
是我的输出:
Object {
"currentUser": Object {
"bio": "bah",
"name": "blah blah",
"username": "blaaaaaaaah",
},
"fetchUser": [Function anonymous],
"navigation": Object {
"addListener": [Function addListener],
"canGoBack": [Function canGoBack],
"dangerouslyGetParent": [Function dangerouslyGetParent],
"dangerouslyGetState": [Function anonymous],
"dispatch": [Function dispatch],
"goBack": [Function anonymous],
"isFocused": [Function isFocused],
"navigate": [Function anonymous],
"pop": [Function anonymous],
"popToTop": [Function anonymous],
"push": [Function anonymous],
"removeListener": [Function removeListener],
"replace": [Function anonymous],
"reset": [Function anonymous],
"setOptions": [Function setOptions],
"setParams": [Function anonymous],
},
"route": Object {
"key": "Profile-sdsdfjnsdfsdfP_bI",
"name": "Profile",
"params": undefined, //!!!params is undefined
},
}
为什么我的参数未定义以及如何设置它们以获取我的功能?
解决方案
推荐阅读
- android - 安卓 | 如何在显示下一个对话之前关闭上一个对话?
- reactjs - Next.js monorepo:子域上的多个应用程序与一个应用程序?
- java - Apache CXF - Weblogic 12c (12.1.3) - 日志记录
- python - 当我尝试使用“set_position()”使用 python-vlc 播放流式视频时出现“时间戳转换失败”
- ibm-cloud - 使用 Javascript 在 IBM Watson Assistant 中创建 OPTION 类型响应,发送标签而不是值
- concatenation - 如何修复连接轴的所有输入数组维度必须完全匹配
- html - 如何使视频在 ng2-smart-table angular 11 的单元格中工作
- terraform - 如何使用 terraform 在 Azure Automatiuon 中为更新管理创建计划
- vb.net - 如何在 vb.net 中以另一种形式从我的主窗体调用我的函数而不会出现此错误
- git - 编辑特定提交并重新应用后续提交