为什么我的this.setState在函数中不起作用?

Shubham Bisht
export default class Home extends Component {
  constructor(props) {
    super(props);
    this.state = {
        checked: false,
    };
  }

  // this.setState is not working here.
  changeLike = () => { this.setState({checked: !this.state.checked}) }

  _renderItem = ( item ) => {

      return(
    <View style={styles.news_item}>
      <View style={styles.unlikeIcon}>
        { this.state.checked === false && 
          <TouchableOpacity onPress={this.changeLike}>
            <Image 
              style={{tintColor: 'red', width: 25, height: 25}}
              source={require('../../assets/imgs/unlike.png')}
            />
          </TouchableOpacity>
        }
        { this.state.checked === true && 
           <TouchableOpacity onPress={this.changeLike}>
             <Image 
               style={{tintColor: 'red', width: 25, height: 25}}
               source={require('../../assets/imgs/likepic.png')}
             />
            </TouchableOpacity>
            }
        </View>    
      </View>
    );
  }

  render() {
           return(
        <View>
          <FlatList 
            data={this.state.data}
            keyExtractor={ (index) => index.toString() }
            renderItem={ ({item}) => this._renderItem(item) }
          />
        </View>
       );
  } 
}

this.setState无法使用_renderItem从Flatlist调用的函数。另外,我没有将其余代码发布在_renderItem中,因为这里没有必要。

我将此代码用作Checkbox的替代方法。请帮忙,我不知道这是怎么回事。我也尝试过使用带有setState

牙本质

它实际上正在工作,并且状态将被正确更新,但是FlatList却不能,因为它仅在this.state.data更改时重新渲染如果要使用其他状态或道具更新FlatList,则需要使用extraData道具。

<FlatList 
  data={this.state.data}
  keyExtractor={ (index) => index.toString() }
  renderItem={ ({item}) => this._renderItem(item) }
  extraData={this.state.checked} // this is the magic
/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我在构造函数中的绑定不起作用?

为什么我的 scanf 在函数中不起作用?

为什么replace()在我的Python函数中不起作用?

为什么 Logical Or 在我的函数中不起作用

为什么 if/else 语句在我的函数中不起作用?

为什么useContext在我的函数中不起作用?

为什么我的def函数在Python中不起作用?

为什么我的 min() 函数在 Python 中不起作用

为什么<<-分配在我的函数中起作用,但是<-却不起作用?

为什么 setState 在组件中不起作用?

如果我在PHP中调用JS函数,为什么我的JS代码不起作用?

我的代码在 $(document).ready() 函数中不起作用。谁能帮我理解为什么?

不明白为什么我的异步等待在我的 lambda 函数中不起作用

为什么用于获取数组长度的 sizeof 函数在我的函数中不起作用?

当我使用递归函数时,为什么函数参数在方括号中不起作用

为什么我的toFixed()函数不起作用?

为什么我的回文函数不起作用?

为什么我的%d函数不起作用?

为什么我的地图函数返回视图不起作用?

为什么我的隐式函数参数不起作用?

为什么我的DeleteNode()函数不起作用?

为什么我的deleteMessage函数不起作用?

为什么我的append函数不起作用?

为什么“ $ _COOKIE”导致我的fwrite()函数不起作用?

为什么我的函数调用不起作用?

为什么我的函数的此签名不起作用?

为什么onLocationChanged函数对我不起作用?

为什么函数'x'.write(frame)对我不起作用?

为什么我的transposeMatrix函数不起作用?