小编Tom*_*nes的帖子

如何仅修改react .map函数中的一个元素?

我对反应有点陌生,并且对在这里做什么有点迷失。我正在从 firebase 加载数据并使用 .map 函数渲染该对象的 props 以列出页面上的所有“评论”,效果很好。我还想调用一个允许用户回复单个评论(即地图中的一个特定元素)的组件,但正如这段代码所期望的那样,当单击回复按钮时,它会在每个元素下显示被调用的组件地图,这是不可取的。在这种情况下,我是否可以只为地图的一个元素调用该组件?

changeIsReply() {
  this.setState(
    {isReply: !this.state.isReply,}
  );
}    

  render() {

  return (
    <div>
    <ul className="list-group">
    {Object.values(this.props.commentInfo).map((data) =>
      data.map((secondData, i) =>
        <div className="commentHolder" key={i}>
            <p>{secondData.text}</p>
            <p>{secondData.category}</p>
            <p>{secondData.organization}</p>
            <button> UpButton </button> <br />
            <button> DownButton </button>
            <button onClick = {this.changeIsReply} > Reply </button>
            {this.state.isReply ? <SetComment id={secondData.key} /> : null}
        </div>
      )
    )}
    </ul>
    </div>
  )
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs

7
推荐指数
1
解决办法
1万
查看次数

深度嵌套的对象数组未呈现

我有一个相当嵌套的数组,它是通过从 Firebase 检索数据、修改它并将其作为道具传递来形成的。数组的结构是 在此处输入图片说明

每个数组(2) 的值几乎都采用相同的格式。我正在尝试渲染来自每个 'array(2)'[0] 对象的 2 个月 = 1、轻度 = 3 等数据点以及来自 'array(2)' 1的数据点,例如 RWJ = 2.5, (它正上方的 0 对象是完全相同的数据格式)。我尝试首先使用以下方法呈现密钥“RWJ” 在此处输入图片说明

当我尝试执行此操作时,没有任何渲染。但是,当我调用一个将“thirdData”记录到控制台的简单函数时,它会准确打印出我正在寻找的内容。

在此处输入图片说明 在此处输入图片说明

thirdData = (value) => {
  console.log(value)
}
Run Code Online (Sandbox Code Playgroud)

非常迷失,因为这里发生了什么,所以任何帮助将不胜感激。此外,当我使用一个更简单的修改过的 Firebase 数据数组时,它会呈现,所以我很确定在组件呈现后传递的道具没有问题。

javascript ecmascript-6 reactjs

5
推荐指数
1
解决办法
1194
查看次数

标签 统计

ecmascript-6 ×2

javascript ×2

reactjs ×2