【问题标题】:No render data passed with props没有通过 props 传递的渲染数据
【发布时间】:2018-01-24 12:58:03
【问题描述】:

我在将数据从一个组件传递到另一个组件时遇到数据渲染问题。我正确地将数据从一个组件显示到另一个组件,但是我无法正确提取数据

根组件

<SelectContainer type={3} data={this.props.templates}/>

子组件

import React from 'react';
const SelectContainer = ({type, data}) => {
let option = [];

if (type === 1) {
    option.push(<option value="#" key={0}>Grant</option>)              
}else if (type === 2) {
    option.push(<option value="#" key={0}>1</option>);        
    option.push(<option value="#" key={1}>2</option>);
    option.push(<option value="#"key={2}>3</option>);        
}
else if (type === 3) {        
    for (let i = 0; i <= data.length; i++) {
        // console.log(i);
        option.push(<option key={i+1} value={data.descTemplate}>
            {data.descTemplate}</option>);                 
    }
}
return (
    <select className="selectContainer">
        {option.map((item) => {
            console.log(item)
            return item
        })}
    </select>
);
}

export default SelectContainer;

img show console.log at return()

select 元素不会呈现我为父组件的属性发送的数据。 console.log 打印我在图像中显示的内容,而不是数据

【问题讨论】:

  • 我不确定你的问题是什么,你能详细说明一下吗?
  • @canaanseaton 选择元素不会呈现我为父组件的属性发送的数据。 console.log 打印我在图像中显示的内容,而不是数据
  • 有什么想法吗?¿?¿?¿
  • 应该是data[i].descTemplate 而不是data.descTemplate,不是吗?
  • @FiriceNguyen 不,没有找到关键“数据”是接收数据的参数

标签: reactjs ecmascript-6 components


【解决方案1】:

我没有发现任何问题。它工作正常。位修改sn-p:

const SelectContainer = ({type, data}) => {
  let option = [];
  for (let i = 0; i < data.length; i++) {
     option.push(<option key={i+1} value={i+1}>{data[i].desc}</option>)            
  }

  return (
      <select className="selectContainer">
          {option.map((item) => {
              return item;
          })}
      </select>
  );
}

const templates = [
    {
      desc: 1
    },
    {
      desc: 2
    },
    {
      desc: 3
    }
]
ReactDOM.render(
   <SelectContainer type={3} data={templates}/>,
   document.getElementById('app')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id="app"></div>

我认为他们的 data.descTemplate 有问题。

【讨论】:

  • 我认为问题在于如何调用日期。我必须用道具做点什么?
  • 现在检查并尝试关联,我已经添加了道具。
  • 我观察到,通过打印 item,props 键是未定义的,而如果我使用 case 2(type === 2),如果这会让我得到正确的值。这可能会发生吗?
  • 数据是异步收费的……难道是这个原因?
  • 在“我正确地将数据从一个组件显示到另一个组件但我无法正确提取数据”的问题中,我没有得到您要说的内容?我从问题中了解到的是,您无法获得选择中的值。是吗?如果不是,您面临的具体问题是什么?
猜你喜欢
  • 2017-08-08
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
相关资源
最近更新 更多