Reactjs 如何在React Native中将参数传递到其他屏幕?

Reactjs 如何在React Native中将参数传递到其他屏幕?,reactjs,react-native,react-router,react-redux,Reactjs,React Native,React Router,React Redux,我的React Js技能非常基本,我想得到的是,当我点击一个类别时,我会在一个新屏幕中显示一个类别的帖子列表,在这个例子中是PostsScreen 问题是我得到的itemId为null 我不知道我做错了什么 类别屏幕 import React, {Component} from 'react'; import { NavigationActions, DrawerNavigator, StackNavigator } from 'react-navigation'; import{Dimens

我的React Js技能非常基本,我想得到的是,当我点击一个类别时,我会在一个新屏幕中显示一个类别的帖子列表,在这个例子中是PostsScreen

问题是我得到的itemId为null

我不知道我做错了什么

类别屏幕

import React, {Component} from 'react';
import { NavigationActions, DrawerNavigator,  StackNavigator } from 'react-navigation';
import{Dimensions, Button, View, SafeAreaView, FlatList, ActivityIndicator, TouchableOpacity } from 'react-native';

export default class WGoals extends Component {
static navigationOptions = {
  title: 'Categories'
    };

navigateToScreen = (route, params) => () => {
const navigateAction = NavigationActions.navigate({
  routeName: route,
  params: params
});
this.props.navigation.dispatch(navigateAction);
}

constructor(props)
  {
super(props);
this.state = { 
isLoading: true,
  }
}

  render() {

    return (

<Container style={styles.background_general}>
                <TouchableOpacity onPress={this.navigateToScreen('PostsScreen', itemId = '1')} >
                <Text>Category 1</Text>
            </TouchableOpacity>
                <TouchableOpacity onPress={this.navigateToScreen('PostsScreen', itemId = '2')} >
                <Text>Category 2</Text>
                </TouchableOpacity>
</Container>      
    );
  }
}
import React, {Component} from 'react';
import { NavigationActions, DrawerNavigator,  StackNavigator } from 'react-navigation';
import{Dimensions, View, SafeAreaView, FlatList, ActivityIndicator } from 'react-native';

export default class Posts extends Component {
static navigationOptions = {
  title: 'Posts'
};

  render() {

    const { params } = this.props.navigation.state;
    const itemId = params ? params.itemId : null;

    return (

<Container style={styles.background_general}>

<Text>Details Screen</Text>
<Text>itemId: {JSON.stringify(itemId)}</Text>

</Container>

    );
  }
    }
import React,{Component}来自'React';
从“react navigation”导入{NavigationActions、DrumerNavigator、StackNavigator};
从“react native”导入{维度、按钮、视图、安全区域视图、平面列表、ActivityIndicator、TouchableOpacity};
导出默认类WGoals扩展组件{
静态导航选项={
标题:“类别”
};
导航屏幕=(路线,参数)=>()=>{
const navigateAction=NavigationActions.navigate({
routeName:route,
params:params
});
这个.props.navigation.dispatch(navigateAction);
}
建造师(道具)
{
超级(道具);
this.state={
孤岛加载:是的,
}
}
render(){
返回(
第一类
第2类
);
}
}
发布屏幕

import React, {Component} from 'react';
import { NavigationActions, DrawerNavigator,  StackNavigator } from 'react-navigation';
import{Dimensions, Button, View, SafeAreaView, FlatList, ActivityIndicator, TouchableOpacity } from 'react-native';

export default class WGoals extends Component {
static navigationOptions = {
  title: 'Categories'
    };

navigateToScreen = (route, params) => () => {
const navigateAction = NavigationActions.navigate({
  routeName: route,
  params: params
});
this.props.navigation.dispatch(navigateAction);
}

constructor(props)
  {
super(props);
this.state = { 
isLoading: true,
  }
}

  render() {

    return (

<Container style={styles.background_general}>
                <TouchableOpacity onPress={this.navigateToScreen('PostsScreen', itemId = '1')} >
                <Text>Category 1</Text>
            </TouchableOpacity>
                <TouchableOpacity onPress={this.navigateToScreen('PostsScreen', itemId = '2')} >
                <Text>Category 2</Text>
                </TouchableOpacity>
</Container>      
    );
  }
}
import React, {Component} from 'react';
import { NavigationActions, DrawerNavigator,  StackNavigator } from 'react-navigation';
import{Dimensions, View, SafeAreaView, FlatList, ActivityIndicator } from 'react-native';

export default class Posts extends Component {
static navigationOptions = {
  title: 'Posts'
};

  render() {

    const { params } = this.props.navigation.state;
    const itemId = params ? params.itemId : null;

    return (

<Container style={styles.background_general}>

<Text>Details Screen</Text>
<Text>itemId: {JSON.stringify(itemId)}</Text>

</Container>

    );
  }
    }
import React,{Component}来自'React';
从“react navigation”导入{NavigationActions、DrumerNavigator、StackNavigator};
从“react native”导入{Dimensions,View,SafeAreaView,FlatList,ActivityIndicator};
导出默认类扩展组件{
静态导航选项={
标题:“帖子”
};
render(){
const{params}=this.props.navigation.state;
const itemId=params?params.itemId:null;
返回(
详细信息屏幕
itemId:{JSON.stringify(itemId)}
);
}
}

更改函数的参数

this.navigateToScreen('PostsScreen', itemId = '1')