无法完成这项工作,交叉检查了所有引用,但这没有帮助。这是该视图的所有代码。
我不确定我缺少什么,是否需要所有依赖项。
var React = require('react-native'); var Delivery = require('./Delivery'); var { View, Text, StyleSheet, TouchableHighlight, } = React; class ListItem extends React.Component{ showDetails(){ this.props.navigator.push({ title: "Delivery details", component: Delivery }); } render(){ return( <TouchableHighlight onPress={this.showDetails.bind(this)} > <View style={styles.listItem}> <View style={styles.listContents}> <Text style={styles.listHead}>JMD Megapolis</Text> <Text style={styles.listAddress}>1109, Sector 48, Sohna Road, Gurgaon 122018</Text> <Text style={styles.listMeta}>2Kms from store</Text> </View> <View style={styles.listCost}> <Text style={styles.cost}>₹40</Text> </View> </View> </TouchableHighlight> ) } } module.exports = ListItem;
如果您以这种方式调用ListView组件,则它应该可以工作。NavigatorIOS已经向下传递参考(但仅一代/一代)。
<NavigatorIOS initialRoute={{ title: 'List View Component', component: ListView, }} />
但是,如果要从NavigatorIOS引用的组件的子组件中调用ListView组件,请尝试此操作。从NavigatorIOS引用的组件中,在其中调用,<ListView />添加一个navigator属性。
<ListView />
<ListView navigator={this.props.navigator} />
您需要记住在子组件中传递要访问的属性,因此,如果<NavigatorIOS />要从NavigatorIOS未直接引用的组件中更改显示的组件,则需要像上面一样向下传递navigator属性。
<NavigatorIOS />
希望这可以帮助。