【发布时间】:2019-12-29 17:52:13
【问题描述】:
我将一个数组作为道具从 App.js 传递给组件 B。数组:
myOptions: [
{
id: 1,
option: "Option1"
},
{
id: 2,
option: "Option2"
},
{
id: 3,
option: "Option3"
}
]
从 App.js 我将它传递给组件 B:
<ComponentB
options={this.state.myOptions}
/>
组件B:
import React from 'react';
import ComponentC from './ComponentC';
function ComponentB (props) {
function renderOptions(key) {
return(
<ComponentC
key={key.option}
optionContent={key.option} //this is my question
answers={props.option}
/>
);
}
return (
<div>
<h3> ComponentB </h3>
{props.options.map(renderOptions)}
</div>
);
}
export default ComponentB;
ComponentC只显示optionContent:
import React from 'react';
function ComponentC(props) {
return (
<div>
{props.optionContent}
</div>
);
}
export default ComponentC;
虽然代码工作正常,但我不确定为什么在renderOptions 函数中,我需要使用key.option 来传递optionContent={key.option} 属性。当我使用props.option 时,它不起作用。
是不是因为renderOptions函数嵌套在ComponentB函数里面?
【问题讨论】:
-
在我看来像苹果和橘子。一方面,您正在查看
props.options的单个元素,另一方面,您正在查看props.options的所有元素。 “它不起作用”到底是什么意思? -
我认为 renderOptions 中的变量来自哪里有些混乱。 map 提供了密钥 arg。另外,props.option 的值是什么,因为它看起来未定义。
-
@ggorlen 我在控制台或屏幕上没有收到任何错误。
-
您可以使用
props代替key参数,然后使用props.option。
标签: javascript arrays reactjs array-map