【发布时间】:2017-03-29 15:56:08
【问题描述】:
我刚刚学习 React Native,我想使用动态数据创建一系列按钮。我当前的代码是:
var locations = this.state.campus.map(function(item, key){
return(
<TouchableHighlight key={key}
style={[styles.button, (this.state.location==={item} && styles.buttonPressed)]}
underlayColor='#dddddd'
onPress={()=>this.buttonPress({item})} >
<Text style={
styles.plainText}>{item}</Text>
</TouchableHighlight>
)
我的问题是线条
style={[styles.button, (this.state.location==={item} && styles.buttonPressed)]}
和
onPress={()=>this.buttonPress({item})}
我正在尝试使用地图函数之外的数据动态生成这些行。如果我使用静态数据(即分别生成每个按钮),这些代码行可以完美运行,但使用动态数据会失败。该代码确实会产生显示,因此问题不在于渲染,而在于功能。
按下按钮后,我收到错误消息 undefined in not an object,而样式只会导致整个显示不呈现。
很明显,动态数据 ({item}) 在 Text 元素中起作用,但在作为数据传递给其他两个元素时不起作用。我曾尝试使用 {{item}} 但这会引发语法错误。
有没有办法在 React Native 中处理这样的动态数据?
【问题讨论】:
-
对于未来的某个人......这里提供的解决方案可能会有所帮助:stackoverflow.com/questions/35663375/…
-
问题的发生是因为你使用了 function(item, key){ 并且你必须使用箭头函数 var locations = this.state.campus.map((item, key) => { return