javascript - Prop 未显示在新 route

标签 javascript reactjs react-native

我一直在尝试学习 React Native,但它比我想象的要难。我无法创建一个简单的“主从”应用程序(而且我也找不到一个好的、简单的教程来解释如何做到这一点)。

我已成功显示类别列表。单击其中一个后,它应该显示类别名称+项目列表:

const data = [{
  "category": "Fruits",
  "items": [{
    "name": "Apple",
    "icon": "apple.png"
  }, {
    "name": "Orange",
    "icon": "orange.png"
  }]
}, {
  "category": "Vegetables",
  "items": [{
    "name": "Lettuce",
    "icon": "lettuce.png"
  }, {
    "name": "Mustard",
    "icon": "mustard.png"
  }]
}];

在我的主课上,我成功地显示了类别列表:

<ListView
  dataSource={this.state.dataSource}
  renderRow={(rowData) => 
  <Text onPress={this.onPressItem.bind(this, rowData.category)}>
    {rowData.category}
  </Text>}
/>

在我的 onPressItem 中,我有以下内容:

onPressItem(category) {
  this.props.navigator.push({
    name: 'DetailView',
    component: DetailView,
    passProps: {
      category 
    }
  });
}

在我的详细信息 View 中,未显示类别名称:

class DetailView extends Component {
  render() {
    return (
      <View style={ styles.container }>
        <Text>Category: { this.props.category }</Text>
        <TouchableHighlight onPress={ () => this.props.navigator.pop() }>
            <Text>GO Back</Text>
        </TouchableHighlight>
      </View>
    );
  }
}

如果有人能帮助我解决这个问题,我将不胜感激。这可能是我做错的事情。创建这个简单的东西并没有那么难。 :/

Full code

最佳答案

我找到了解决方案。我在渲染 View 时犯了一个错误:

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

正确的做法是:

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

感谢mehcode帮助我。

关于javascript - Prop 未显示在新 route ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38426378/

相关文章:

javascript - 为什么会导致 .map 记录到控制台而不是实际 View

javascript - HTML5 基本拖放不适用于 FF 中的输入按钮

javascript - 使用 javascript 将 CSV 文件导入 Illustrator

javascript - 小数点后的值未在 Javascript 中计算

reactjs - 如何在 ReactJS 中将 PDF 转换为图像

reactjs - react 模拟测试 useNavigate

javascript - 如何键入组件的样式属性以接受数组?

javascript - Meteor js 回调不起作用

javascript - React Redux 处理大型嵌套树更新

database - 如何使用React Native将数据存储在本地存储中?