无法添加函数来在renderItem FlatList中创建动态按钮

时间:2017-08-22 05:42:40

标签: reactjs react-native

我正在尝试添加一个函数来根据renderItem FlatList组件中的状态返回按钮文本。

renderButton() {
  return <Text>Button</Text>;
}

<TouchableWithoutFeedback>
    <TouchableOpacity>
        {this.renderButton()}
    </TouchableOpacity>
<TouchableWithoutFeedback>

此代码返回错误

  

函数this.renderButton不是函数

更新

<FlatList
      data={list}
      renderItem={this.renderRow}
    />

renderRow({item}) {
  return(
      <TouchableWithoutFeedback>
        <TouchableOpacity>
            {this.renderButton()}
        </TouchableOpacity>
      <TouchableWithoutFeedback>
  );
}

renderButton() {
  return <Text>Button</Text>;
}

1 个答案:

答案 0 :(得分:2)

您需要绑定renderRow函数才能访问其中的this.renderButton

<FlatList
      data={list}
      renderItem={this.renderRow.bind(this)}
    />

<FlatList
      data={list}
      renderItem={() => this.renderRow()}
    />

renderRow = ({item}) => {
  return(
      <TouchableWithoutFeedback>
        <TouchableOpacity>
            {this.renderButton()}
        </TouchableOpacity>
      <TouchableWithoutFeedback>
  );
}