如何在道具中计算和传递数组?
How to compute and pass array in props?
我正在使用 react-form 制作一个简单的表单,并希望将项目列表传递给 Select
组件。 Select
组件是 react-form
库的一部分。
我想将 fooItems
传递给 Select
Select
组件所需的结构
selectItems = [{
value: 1,
label: 'a',
}, {
value: 2,
label: 'b',
}]
我首先要过滤从 Redux mapStateToProps
收到的 fooItems
数组
fooItems = [{
id: 1,
name: 'a',
parent: 'P',
child: 'C'
}, {
id: 2,
name: 'b',
parent: 'P',
child: 'C'
}]
我试图在将 props 传递给组件时实现一个功能
render() => (
<Select
field = "foo"
id = "foo"
options = {
() => {
return this.props.fooItems.map(e => {
return {
label: e.name,
value: e.id
}
})
}
}
/>)
但我收到以下错误
Uncaught TypeError: Cannot read property 'find' of undefined
at t.value (index.js:1)
The above error occurred in the <t> component:
in t (created by r)
Options
字段需要一个对象数组,但是您向它传递了一个函数。您要么需要调用该函数
render() => (
<Select
field = "foo"
id = "foo"
options = {
() => {
return this.props.fooItems.map(e => {
return {
label: e.name,
value: e.id
}
})
}();
}
/>)
或者你应该直接return map
的结果
render() => (
<Select
field = "foo"
id = "foo"
options = {this.props.fooItems.map(e => {
return {
label: e.name,
value: e.id
}
})
}
/>)
我正在使用 react-form 制作一个简单的表单,并希望将项目列表传递给 Select
组件。 Select
组件是 react-form
库的一部分。
我想将 fooItems
传递给 Select
Select
组件所需的结构
selectItems = [{
value: 1,
label: 'a',
}, {
value: 2,
label: 'b',
}]
我首先要过滤从 Redux mapStateToProps
fooItems
数组
fooItems = [{
id: 1,
name: 'a',
parent: 'P',
child: 'C'
}, {
id: 2,
name: 'b',
parent: 'P',
child: 'C'
}]
我试图在将 props 传递给组件时实现一个功能
render() => (
<Select
field = "foo"
id = "foo"
options = {
() => {
return this.props.fooItems.map(e => {
return {
label: e.name,
value: e.id
}
})
}
}
/>)
但我收到以下错误
Uncaught TypeError: Cannot read property 'find' of undefined
at t.value (index.js:1)
The above error occurred in the <t> component:
in t (created by r)
Options
字段需要一个对象数组,但是您向它传递了一个函数。您要么需要调用该函数
render() => (
<Select
field = "foo"
id = "foo"
options = {
() => {
return this.props.fooItems.map(e => {
return {
label: e.name,
value: e.id
}
})
}();
}
/>)
或者你应该直接return map
的结果render() => (
<Select
field = "foo"
id = "foo"
options = {this.props.fooItems.map(e => {
return {
label: e.name,
value: e.id
}
})
}
/>)