我收到此错误。诺言似乎没有解决。 但是,我不确定如何解决此问题... 我正在使用异步存储
错误:
对象作为React子对象无效(找到:带有键{_40,_65,_55,_72}的对象)。
这是我的代码
const ProfileStackScreen = ({navigation}) => {
return (<ProfileStack.Navigator>
<ProfileStack.Screen name= {"Profile"} component={Profile}
options ={{
title: AsyncStorage.getItem('username'),
headerRight: () => (
<Icon name="cog" color={"grey"} size={26} style={{marginRight: 20}}
onPress={() => navigation.navigate("Settings")}/>
),
headerLeft: () => (
<Icon name="users" color={"grey"} size={23} style={{marginLeft: 20}}
onPress={() => navigation.navigate("ManageFriends")}/>
)
}}/>
<SettingsStack.Screen name="Settings" component={Settings}/>
<ManageFriendsStack.Screen name="ManageFriends" component={ManageFriends}/>
</ProfileStack.Navigator>);
}
编辑1:
我注意到我可以做这样的事情
const ProfileStackScreen = ({navigation}) => {
AsyncStorage.getItem('username').then(name => {
//comment
console.log(name);
});
return (<ProfileStack.Navigator>
<ProfileStack.Screen name= {"Profile"} component={Profile}
options ={{
title: "hi",
headerRight: () => (
<Icon name="cog" color={"grey"} size={26} style={{marginRight: 20}}
onPress={() => navigation.navigate("Settings")}/>
),
headerLeft: () => (
<Icon name="users" color={"grey"} size={23} style={{marginLeft: 20}}
onPress={() => navigation.navigate("ManageFriends")}/>
)
}}/>
<SettingsStack.Screen name="Settings" component={Settings}/>
<ManageFriendsStack.Screen name="ManageFriends" component={ManageFriends}/>
</ProfileStack.Navigator>);
}
但是,我想在标题中设置名称(第5行),因为我得到了(setState为undefined),所以无法执行this.setState,并且由于得到了“不能找到”,所以不能将return放在//注释中退货声明”
有什么想法可以实现这一目标吗?
编辑2
试图添加navigation.setOptions
const ProfileStackScreen = ({navigation}) => {
AsyncStorage.getItem('username').then(name => {
navigation.setOptions({title: name});
});
return (<ProfileStack.Navigator>
<ProfileStack.Screen name= {"Profile"} component={Profile}
options ={{
headerRight: () => (
<Icon name="cog" color={"grey"} size={26} style={{marginRight: 20}}
onPress={() => navigation.navigate("Settings")}/>
),
headerLeft: () => (
<Icon name="users" color={"grey"} size={23} style={{marginLeft: 20}}
onPress={() => navigation.navigate("ManageFriends")}/>
)
}}/>
<SettingsStack.Screen name="Settings" component={Settings}/>
<ManageFriendsStack.Screen name="ManageFriends" component={ManageFriends}/>
</ProfileStack.Navigator>);
}
但是,它会被name= {"Profile"}
覆盖,显示的是个人资料,而不是我的用户名。
答案 0 :(得分:0)
在组件本身Navigation.setOptions({title:'Some title'})中使用setOptions
如here所述:
通常有必要更新 已安装屏幕组件本身的活动屏幕。我们做得到 使用navigation.setOptions