反应导航:'navigation.state.params'在'static navigationOptions'中始终未定义

时间:2017-08-01 02:28:06

标签: javascript react-native redux react-redux react-navigation

我的问题的核心是,当我在导航选项中有这个时:

static navigationOptions = ({ navigation }) => {
    console.log(navigation)
    console.log(navigation.state)
}

第一个'console.log'语句返回带有“navigation.state.params”的导航对象,其中包含我传入的params。

然而,第二个'console.log'返回'navigation.state'对象但由于某种原因'params'未定义。

以下是我设置导航参数的方法(来自redux):

function mapStateToProps(state, props) {
    let sum = 0
    for (let product in state.cart) {
        sum += state.cart[product]
    }
    return props.navigation.state = {params: {cartSum: sum}}
}

我的开发者环境:

节点6.10.1
反应原生0.46.4
redux 3.7.1
react-redux 5.0.5
react-navigation 1.0.0-beta.11

2 个答案:

答案 0 :(得分:5)

像这样使用

static navigationOptions = ({ navigation }) => {
    const { params = {} } = navigation.state;
    console.log(params)**will show you the handlesave with object value hello**
};

this.props.navigation.setParams({ handleSave: "Heloo" });

可能这可以帮助你,谢谢

答案 1 :(得分:-1)

可以通过在组件类中实现方法来解决此问题。

getNavigationParams() {
        return this.props.navigation.state.params || {};
    }

这将使您可以访问参数。但它不适用于嵌套对象。