设置数组[react-native]中元素的状态

时间:2018-08-23 07:14:05

标签: react-native

我有一个看法

for ((i = 0; i < ${#varA[@]}; ++i)); do
    var3[i]="${varA[i]}:::${varB[i]}"
done

如何设置框架中元素的状态,默认为false,当单击为true时,双击为false

1 个答案:

答案 0 :(得分:0)

尝试以下代码。

我将帧保留在render方法之外,并使用了flatlist。现在,当按下按钮时,该特定框架元素的isFrameActive标志将更改并重新呈现。因此,这应该按照您的要求工作。试试吧!

this.state = {
  frames : [
   {
     id: 1,
     value: 1,
     isFrameActive: true
   }, 
   {
     id: 2,
     value: 2,
     isFrameActive: true
   }, 
   {
     id: 3,
     value: 3,
     isFrameActive: true
   }
 ]
};

handleChoiceTime = (index, item) => {
  this.state.frames[index].isActive = !this.state.frames[index].isActive;
  this.setState({
    frames: this.state.frames
  })
}

renderFrame = (item) => {
  <TouchableOpacity style={item.isFrameActive ? styles.frameItemActive : styles.frameItem} key={item.id} onPress={this.handleChoiceTime.bind(index, item)}>
    <Text style={{color: '#8E8E93', fontSize: 17}}>{item.value}</Text>
  </TouchableOpacity>
}

render() {
  <Flatlist
    data={this.state.frames}
    renderItem = {(item) => this.renderFrame(index, item)}
    extraData={this.state}
  />
};