这是屏幕:
import React from 'react';
import { View, StyleSheet, Image, TouchableOpacity, Text } from 'react-native';
import { NavigationActions } from 'react-navigation'
export default class ContentScreen extends React.Component {
render() {
const { state } = this.props.navigation;
const { code } = state.params.code
return(
<Text>CONTENT GOES HERE: {JSON.stringify(state)} / '{code}'</Text>
)
}
}
导航调用:
<TouchableOpacity key={k} onPress={() => {navigate("Content", {code: k})}} style={styles.listing}>
以下是显示的内容:
CONTENT GOES HERE: {"params":{"code":"222"},"key":"id-151010...","routeName":"Content"} / ''
这真的是@(#$怪异。这个值显然存在于state.params.code
,正如JSON字符串所示,但是当访问时,它不存在。Object.values(state.params)
和{ {1}}提供预期结果(Object.keys(state.params)
和["code"]
)。
那么,就像发生了什么一样有什么想法?或者有关如何进一步调查的想法?
答案 0 :(得分:1)
看起来你的结构太深了。
const { code } = state.params.code;
这基本上是在寻找this.props.state.params.code.code
尝试:
Const { code } = state.params;
或者:
const { navigation: { state: { params: { code } } } } = this.props;