在呈现平面清单的组件中做事

时间:2018-09-12 19:01:04

标签: javascript reactjs react-native

我有一个Post组件,用于在FlatList中渲染帖子。现在,该组件仅将文本和图像呈现到Flatlist,但是在Post组件中,基于功能又基于指定信息的功能,该按钮应执行诸如删除,打开新屏幕等操作单击的FlatList中的项目。

我的app.js的一部分

  deletePost = (author) => {
    alert("Deleted post by" + author)
  }
  renderItem = ({ item, index }) => {
    return (
      <Post
        author={item.user}
      />
    )
  }
  render() {
    return (
     <FlatList data={this.state.getData} renderItem={this.renderItem}>
     </FlatList>
    )
  }

这是组件

const Post = (props) => {
  return (   
          <Text onPress={() => props.delete(props.author)}>
            <Icon />
          </Text>
  )
}

这就是我被困住的地方。我得到警报,但是作者被渲染为未定义。

2 个答案:

答案 0 :(得分:1)

希望对您有帮助。请尝试以下操作:

renderItem = ({ item, index }) => {
  return (
    <Post
      author={item.user}
      delete={this.deletePost}
    />
  )
}

deletePost方法也应如下所示。

deletePost = (author) => {
  alert("Deleted post by" + author)
}

答案 1 :(得分:1)

回答注释中指定的问题后,应将arg传递给函数,例如:

deletePost = (author) => {
  alert("Deleted post by" + author)
}