无法在控制台中读取属性未定义属性错误 - React Component渲染方法

时间:2017-04-18 01:35:45

标签: reactjs redux

看到 bundle.js:94016未捕获的TypeError:无法读取属性' propertyValue '未定义的     在Component.render(bundle.js:94016) 控制台中的错误 - 此值是我的操作创建者中API调用的响应 - 但如果它在操作创建者响应中打印值,则逻辑也适用于组件的render方法。我在这里错过了什么..?

组件:

 componentDidMount() {
    //action creator call from component
    this.props.getData(apiURL);
  }
render() {
const propValue = this.props.apiResponseData.propertyValue;
return (
  <div>
    <div>
      {(propValue === 'red') ? <RED /> : <BLUE />}
    </div>
  </div>
);

2 个答案:

答案 0 :(得分:0)

需要细分的高级描述和代码。我认为你的状态正确,但是你没有正确地进入你的组件。

code [10] conosle.log(this.props)插入此行以检查它们。

工作正常。只需检查您的“this.props”并找到您正确的propertyValue路径。

如果你没有使用ImutableJS,它可能会喜欢 的 “this.props.apiResponseData.count.propertyValue;”

路径说明如下

apiResponseData =&gt; propsName

count =&gt; reducerName

propertyValue =&gt; dataName

enter dd description here

enter image description here

答案 1 :(得分:0)

由于您是从API获得响应,因此在渲染的初始时间可能没有定义,因此yuu会收到错误

试试这个

render() {
const propValue = null;
if(this.props.apiResponseData) {
    propValue = this.props.apiResponseData.propertyValue;
}
return (
  <div>
    <div>
      {(propValue === 'red') ? <RED /> : <BLUE />}
    </div>
  </div>
);