Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
Reactjs 从数组中的值为Redux表单呈现字段_Reactjs_Redux Form - Fatal编程技术网

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`} />