gpt4 book ai didi

react-native - 如何从静态导航选项调用 redux 操作?

转载 作者:行者123 更新时间:2023-12-01 22:09:29 25 4
gpt4 key购买 nike

我需要从静态导航选项调用一个 Action ,但无法通过 this.props 访问我的 Action 。如何调用这个 Action ?我在控制台中收到错误消息“无法读取未定义的属性‘注销’”。

static navigationOptions = ({navigation}) =>( {
title: 'Home',
header: <Header headerTitle={navigation.state.routeName} logoutButtonPress={() => {
this.props.logout(); // this action is not working
NavigationActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: "Welcome" })]
})
navigation.navigate('Welcome');
}
}
/>,
});

最佳答案

在有导航选项的屏幕组件中

  componentDidMount() {
this.props.navigation.setParams({
logOut: this.actionLogOut
});
}

actionLogOut = () => {
this.props.dispatch(logOut()); };

在componentDidMount时在navigation的params中加载logout函数 Action ,然后

static navigationOptions = ({ navigation }) => {
return {
headerTitle: (
<Text
style={{
left: Platform.OS == "android" ? 20 : 0
}}
>
Personal Data
</Text>
),
headerRight: (
<Aux>
<Icon
name="md-notifications"
size={27}
color="#9D9B9C"
style={{ paddingLeft: 15, marginRight: 15 }}
/>
<Icon
name="ios-log-out"
size={27}
color="red"
style={{ paddingLeft: 15, marginRight: 15 }}
onPress={() => {
console.log(navigation);
navigation.state.params.logOut();
navigation.dispatch(NavigationActions.back({ index: "Login" }));
navigation.popToTop();
}}
/>
</Aux>
)
};

};

在 navigationOptions 中用作 navigation.state.params.logOut();

该组件必须使用 connect using import { connect } from "react-redux"并与组件连接

关于react-native - 如何从静态导航选项调用 redux 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49275685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com