Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React-typeerror:无法读取未定义的属性-但我可以很好地读取其他道具_Javascript_Reactjs_Object_React Redux - Fatal编程技术网

Javascript React-typeerror:无法读取未定义的属性-但我可以很好地读取其他道具

Javascript React-typeerror:无法读取未定义的属性-但我可以很好地读取其他道具,javascript,reactjs,object,react-redux,Javascript,Reactjs,Object,React Redux,我对这个未定义的错误感到困惑。这是我可以从render()中console.log的对象 在第一次渲染时,对象实际上是未定义的。我通过将每个属性分配给一个空类型来处理这个问题。例如: const price = this.props.detail.price || [] 出于某种原因,无论我做什么,我都无法访问选项obj的道具:颜色和大小。即使这样也会导致类型错误: const color = this.props.detail.options.color || [] 访问和渲染除optio

我对这个未定义的错误感到困惑。这是我可以从render()中console.log的对象

在第一次渲染时,对象实际上是未定义的。我通过将每个属性分配给一个空类型来处理这个问题。例如:

const price = this.props.detail.price || []
出于某种原因,无论我做什么,我都无法访问选项obj的道具:颜色和大小。即使这样也会导致类型错误:

const color = this.props.detail.options.color || []

访问和渲染除options.color和options.size之外的所有其他道具没有问题。有什么想法吗?

当您这样做时,您的选项对象是未定义的

const color = this.props.detail.options.color || []
试着做

const color= this.props.detail.options? this.props.detail.options.color || [] :[];

您正在尝试更改常量的值吗?Lodash非常棒:
const color=uu.get(this.props.detail.options,'color')|【】这非常有效。谢谢,蔡斯。Palsrealm的解决方案同样有效。谢谢,@Palsrealm。这解决了问题!Chase的lodash解决方案也有效。我喜欢这种更简洁的方法:const color=(this.props.detail.options | |{}).color |[];
const color= this.props.detail.options? this.props.detail.options.color || [] :[];