Reactjs 从数组中的值为Redux表单呈现字段
我正在为包含多个字段的图形创建一个过滤器。其中大部分是已知字段,但有一部分是动态的,即用户希望在图中包括哪些房屋。房子包含在我的州,每个用户的房子都不同,基本上,用户选择他们的名字。这是我想基于道具动态渲染的房屋部分 我发现的唯一一个例子是,但我还没有找到一个解决方案,如何将其转化为我的问题。我想我可以这样做,将每个房屋字段放置在一个数组中,如该示例所示:Reactjs 从数组中的值为Redux表单呈现字段,reactjs,redux-form,Reactjs,Redux Form,我正在为包含多个字段的图形创建一个过滤器。其中大部分是已知字段,但有一部分是动态的,即用户希望在图中包括哪些房屋。房子包含在我的州,每个用户的房子都不同,基本上,用户选择他们的名字。这是我想基于道具动态渲染的房屋部分 我发现的唯一一个例子是,但我还没有找到一个解决方案,如何将其转化为我的问题。我想我可以这样做,将每个房屋字段放置在一个数组中,如该示例所示: renderHouseFields() { const { fields: { houseArray } } = this.pr
renderHouseFields() {
const { fields: { houseArray } } = this.props;
return this.props.houses.map((house) => {
const houseField = (
<label
{...houseArray}
className="col-xs-9 control-label"
htmlFor="cottageCheckbox"
>
<input type="checkbox" />
</label>
);
houseArray.addField(houseField);
return (
<div key={house.name}>
<label
className="col-xs-3 control-label"
htmlFor="cottage"
>
{house.name}
</label>
{houseField}
</div>
);
});
}
但我只是得到了这个错误信息:
警告:setState…:无法在现有状态转换期间更新,例如在渲染内。渲染方法应该是道具和状态的纯函数
这是我在React的第一个项目,所以我很确定我忽略了一些东西,但我找不到解决方案,如果有人能在这里帮助我,我将不胜感激
<>我也知道我可以升级到ReDux表单6,并且使用FieldRay.但是我不想在项目中间做这件事。 < P>根据你的代码判断,我认为你得到了错误,因为你在渲染方法中直接添加了你的HealErar。这将触发组件道具的更新,该更新不应出现在渲染方法中,因此会出现错误 如果查看您提供的deepform链接,您会注意到对字段进行的唯一位置修改发生在按钮事件处理程序中 在您的情况下,我认为您要做的是将房屋数组中的条目链接到实际的复选框。现在您只添加复选框,但它没有对房屋字段的引用:
<input type="checkbox" name={house} />
或者,这取决于房子的属性:
顺便说一句,我真的建议升级到版本6,因为API更有意义,它比以前的版本有很多改进。有一个迁移指南:这当然是有道理的,以后必须做一些测试。如果我有时间升级到版本6,我会的,但我不知道是否可以。看来我得花一个周末的时间将我的redux表单升级到版本6。无论如何,谢谢你的帮助!不客气!祝你好运,我相信一切都会好起来的:
<input type="checkbox" name={`${house}.id`} />