React:接收Uncaught Error:在尝试渲染数组时,对象无法作为React子项生效

时间:2017-11-08 00:42:03

标签: javascript arrays json reactjs

我正在使用React 16并且我的目标是尝试从JSON文件渲染数组,我会感激任何帮助。

JSON:尝试呈现sameLongFilename

列表
find . -maxdepth 1 -type f -name "*$month*" | xargs -I{} mv {} $month

我尝试了这个但是React不会因为这个错误而渲染它: Uncaught Error:对象无效作为React子对象(找到:带有键的对象{codigoLote,cantidad,costo,fIngreso,fVence} )。如果您要渲染子集合,请改用数组。

codigoLote

我也试过这个解决方案,但它似乎没有找到我在阵列上的字段。

{ 
"_id" : "bMv7ip59zuy3PyTvD", 
"codigo" : "001", 
"name" : "Nombre 1", 
"lab" : "Lab 2", 
"principio" : "activo", 
"dosis" : "dos", 
"sintomas" : "tres", 
"contra" : "cuatro", 
"createdAt" : ISODate("2017-11-05T19:12:19.628Z"), 
"Lotes" : [
{ "codigoLote" :"B4578", "cantidad" : "100", "costo" : "0.00", 
  "fIngreso" : "7/11/2017", "fVence" : "7/11/2017" }

{ "codigoLote" :"B4579", "cantidad" : "100", "costo" : "0.00", 
  "fIngreso" : "7/11/2017", "fVence" : "7/11/2017"}
 ] }

1 个答案:

答案 0 :(得分:2)

您对最终结果的期望是什么?你有一个对象数组。您需要循环遍历该对象数组,然后为每个对象查看并将每个键值对作为<li>格式化,然后根据需要进行格式化。也许是这样的:

  <ul>
    {this.props.meds.Lotes.map((lotesObject) => (
      Object.entries(lotesObject).map(([key, value]) => (
        <li>{key}: {value}</li>
      ))
    ))}
  </ul>

编辑:你真的可能最好让每个对象都成为他自己的<ul>,以及你可能想做的任何其他内容:

  <div>
    {this.props.meds.Lotes.map((lotesObject) => (
      <ul>
        {Object.entries(lotesObject).map(([key, value]) => (
          <li>{key}: {value}</li>
        ))}
      </ul>
    ))}
  </div>