gpt4 book ai didi

ios - 我如何使用 NavigatorIOS 中的 push() 函数?

转载 作者:行者123 更新时间:2023-11-28 21:14:25 26 4
gpt4 key购买 nike

我想通过 NavigatorIOS 中的函数 push() Push 到一个新组件。就像下面这样:

  renderRow(rowData, sectionID, rowID) {
var imgSource = IMAGE_URLS[rowID];
return (
<TouchableHighlight onPress = {() => {
this.props.navigator.push({
title: 'test',
component: example,
});
}}>
<View>
<View style={styles.row}>
<Image
source={imgSource}
style={styles.thum}
/>
<Text style={styles.text}>
{rowData}
</Text>
</View>
</View>
</TouchableHighlight>
);
}

但是当我点击TouchableHighlight时会报错。

enter image description here

在此之前我提到了这两个问题(12)。完整的代码在这个 link

最佳答案

这没有绑定(bind)到 renderRow() 内部的类。

您必须在构造函数中绑定(bind) this:
this.renderRow = this.renderRow.bind(this);

或者在渲染方法中:

 render() {
var navStatusBarConfig = {
style: 'light-content',
}
return (
<View style={{ flex: 1, backgroundColor: '#F5FCFF'}}>
<View styles={styles.nav}></View>
<ListView
automaticallyAdjustContentInsets={false}
contentContainerStyle={styles.list}
dataSource={this.state.dataSource}
pageSize={4}
renderRow={this.renderRow.bind(this)}
/>
</View>
);
}
}

至于为什么,原因如下: https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#autobinding
还有一个更完整的关于如何绑定(bind) this 的博客 [有很多博客和绑定(bind) this 的方法]): http://blog.andrewray.me/react-es6-autobinding-and-createclass/

关于ios - 我如何使用 NavigatorIOS 中的 push() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41776201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com