passProps没有为反应原生的ListItem设置道具

时间:2016-08-31 21:21:11

标签: react-native

我正在使用ListItem onPress使用下面的代码导航到不同的路线。

onPress(item) {
 this.props.navigator.push({
  component: Areas,
  passProps: {
    new_id: item.new_id,
  }
});
}
_renderItem(item) {
  return (
    <ListItem item={item} onPress={ () => this.onPress(item) }/>
  );
 }

但是,this.props.new_id在下一个组件中未定义。

export default class areas extends Component {
  constructor(props) {
  super(props);
  console.log(" UUUU ");
  console.log(this.props.new_id);
}
render(){
  return (
    <Text style={styles.liText}>AAA {this.props.new_id} BBB</Text>
  );
}
AppRegistry.registerComponent('areas', () => areas);

我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

实际上,我找到了答案。我查看了没有正确传递道具的renderScene。

我通过以下方式修复它: 初始:

return React.createElement(route.component, { navigator });

要:

return React.createElement(route.component, { ...this.props, ...route.passProps, route, navigator } )

这似乎是传递道具。