看到 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>
);
答案 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
答案 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>
);