我在使用react-native应用程序时遇到了一些麻烦.我无法弄清楚如何跨屏幕传递数据.
我意识到还有其他类似的问题已在SO上得到解答,但解决方案并不适用于我.
我正在使用StackNavigator.这是我在我的App.js文件中的设置.
export default SimpleApp = StackNavigator({
Home: { screen: HomeScreen },
Categories: { screen: CategoriesScreen }, // send from here
Category: { screen: CategoryScreen } // to here
});
Run Code Online (Sandbox Code Playgroud)
我有一个TouchableHighlight组件,其中有一个onPress事件将导航到所需的屏幕.这是在我的Categories.js文件/屏幕上.
<TouchableHighlight onPress={(id) => {
const { navigate } = this.props.navigation;
navigate('Category', { category: id });
}}>
<Text>{name}</Text>
</TouchableHighlight>
Run Code Online (Sandbox Code Playgroud)
当我单击该元素时,屏幕确实切换到category,但它无法发送props数据.
因此,当我检查Category屏幕中的数据时,它返回undefined.我尝试了以下方法:
this.props.category
this.props.navigation.state.category;
this.props.navigation.state.params.category
Run Code Online (Sandbox Code Playgroud)
我究竟如何访问我在navigate方法中传递的数据?
navigate('Category', { category: id …Run Code Online (Sandbox Code Playgroud) 我试图从对象内的对象获取键和值数据.
例:
$.each(my_object, function(key, value)
{
// some code
if (typeof value === object)
{
$.each(value, function(key, value)
{
// do something
)};
}
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到以下错误:
对象未定义
有帮助吗?