【问题标题】:ReactJS: Mapped data not showing in viewReactJS:映射数据未显示在视图中
【发布时间】:2019-09-04 03:22:57
【问题描述】:

我有一个函数previewData(),我用它来映射一个数据数组,如下所示(在渲染方法中):

const {formData} = this.state;

function previewData() {

    formData.map((item, key) => {
        console.log("item", item.question);
        return (<div>{item.question}</div>)
    })
}

在渲染方法的return 语句中,我正在使用这样的函数:

<div className="form_preview polaroid unchange_div">
    {previewData()}
</div>

这就是我将数据推送到我的数组中的方式(在渲染方法之外):

addFormData() {

    const {formQuestion} = this.props;

    const formRawData = {
      'question': formQuestion,
      'type': this.state.qtype
    }

    this.state.formData.push(formRawData);

    this.setState({
      success: true
    })
  }

我可以看到我的控制台也正确记录了日志,但我的视图中没有填充这些值。这里似乎有什么问题?

【问题讨论】:

    标签: javascript reactjs mapping


    【解决方案1】:

    您需要确保 previewData() 返回映射的结果,以便映射的 &lt;div&gt; 元素数组可以在 polaroid 容器内呈现:

    function previewData() {
    
         /* Add return before formData.map */
          return formData.map((item, key) => {
            console.log("item", item.question);
            return (
              <div>{item.question}</div>
            )
          })
        }
    

    【讨论】:

    • 我认为只在映射函数内部返回就足够了。无论如何,感谢您指出这一点。
    • 嘿,我对此有点陌生,想试试这个解决方案。但是你能解释一下“关键”是什么吗?你从哪里得到它?我不确定如何在我的代码中实现它。谢谢!
    • @webdesignnoob - 当然:) keyitemformData 数组中的实际数字索引。它从map( .. ) 函数作为第二个参数传递给您提供的回调函数(即返回&lt;div&gt; 的位置)。以下是有关从 map( .. ) 传递到您的回调的参数的更多信息:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - 希望对您有所帮助!
    • 这很有意义!非常感谢你的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多