reactjs - 如何将道具从组件发送到 Redux FieldArray
问题描述
我正在使用带有 FieldArray 的 redux-form,我需要访问 FieldArray 组件中的道具。我尝试按以下方式传递道具,但出现“无法读取未定义的属性'字段'”的错误
<FieldArray name="docList" component={docs} props={this.props}/>
const docs= ({props, meta: {error, submitFailed}}) => {
const {fields} = props;
return (
{fields.map((doc, index) => (
<div>
<Field component={CustomCom} name={`${doc}.size`} label="size"
handleChange={(label, type) => this.customMethod(label, SIZE)}
placeholder="" value={props.sizeValue}/>
</div>
))}
请让我知道如何在 FieldArray 组件中传递和使用道具。谢谢你。
解决方案
像这样更新你的函数参数
const docs= ({meta: {error, submitFailed}, ...props})
, 或者,
const docs= ({fields, meta: {error, submitFailed}})
FieldArray props 将添加到docs
组件的 props 对象中,redux-form
将自行维护fields
和meta
对象项目,您传入的其余 propsFieldArray
将附加到props
发送到docs
组件中。
举个例子
const renderMembers = props => {
console.log(props);
const {
fields,
meta: { touched, error, submitFailed }
} = props;
return (
<ul>
{fields.map((member, index) => (
<li key={index}>foo</li>
))}
</ul>
);
};
<FieldArray
name="members"
component={renderMembers}
explicitProp={"Hello"}
/>
推荐阅读
- javascript - 将字典(对象)从html元素传递给js点击事件监听器
- css - 修复了 Firefox 中的模糊背景边缘有白光
- html - 在 td 单元格的 div 中设置 margin-top
- r - 当我使用 eta_squared(效果大小)时,我不理解 R 中的错误消息
- swift - 无法在 SwiftUI 中为 TapGesture 应用“.onChanged”方法
- reactjs - 将导入的 CSS 模块类转换为样式属性
- gis - 如何:确定点要素与同一层中最近点要素之间的距离?
- javascript - 我正在尝试使用 jquery 更改 textarea 中标签的顺序,但它不起作用?
- sql-server - 寻找 PowerShell 脚本以在 SSRS 中创建数据驱动订阅
- python - 将自定义查询集传递给 django rest 框架嵌套序列化程序