Javascript redux表单中的动态输入字段。如何重播

Javascript redux表单中的动态输入字段。如何重播,javascript,reactjs,redux-form,Javascript,Reactjs,Redux Form,所以我对React和JavaScript都是新手,我正在做一个需要向导表单的项目。然后我开始使用redux表单,以使工作更容易。但我正在努力创建基于选择列表的动态输入字段 预期的功能是,当在下拉列表中选择3时,我将得到3个输入字段。我现在可以做到这一点,但只能通过使用按钮来更新。我不知道不使用按钮怎么做 我正在使用formValueSelector,因为我还需要在向导表单的另一部分中执行此操作 如果我的页面组件是一个带有状态的类,我想我可以做到这一点,但我不知道我是否可以和redux表单一起做到

所以我对React和JavaScript都是新手,我正在做一个需要向导表单的项目。然后我开始使用redux表单,以使工作更容易。但我正在努力创建基于选择列表的动态输入字段

预期的功能是,当在下拉列表中选择3时,我将得到3个输入字段。我现在可以做到这一点,但只能通过使用按钮来更新。我不知道不使用按钮怎么做

我正在使用formValueSelector,因为我还需要在向导表单的另一部分中执行此操作

如果我的页面组件是一个带有状态的类,我想我可以做到这一点,但我不知道我是否可以和redux表单一起做到这一点。 有什么建议吗

let renderParts = ({fields, n}) => {
    function update(n) {
        n = Number(n);
        let arr = Array(n).fill(0);
        fields.removeAll();
        arr.map(index =>
        fields.push({})
        )
    }

    return (
    <div>
        <button type="button" onClick={() => update(n) }>Update</button>
        <ul className="list-inline">
            {fields.map((parts, index) =>
                <li key={index}>
                    <Field name={`${parts}.partLength`} type="number" component={renderField}/>
                </li>
            )}
        </ul>
    </div>
    )
};

let Page = (props) => {
    const { handleSubmit, numFields } = props;
  return (
    <form className="form-horizontal" onSubmit={handleSubmit}>
          <Field name="numFields" component="select" >
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
          </Field>
        <FieldArray name="parts" component={renderParts} n={numFields}/>
    </form>
  );
};

Page = reduxForm({
    form: 'wizard',
    destroyOnUnmount: false,
    forceUnregisterOnUnmount: true
})(Page);

const selector = formValueSelector('wizard')
Page = connect(
    state => {
        const numFields = selector(state, 'numFields');
        return {
            numFields
        }

    }
)(Page)

export default Page;
let renderParts=({fields,n})=>{
功能更新(n){
n=数量(n);
设arr=Array(n).fill(0);
fields.removeAll();
arr.map(索引=>
fields.push({})
)
}
返回(
更新(n)}>更新
    {fields.map((部分,索引)=>
  • )}
) }; 让页面=(道具)=>{ 常量{handleSubmit,numFields}=props; 返回( 1. 2. 3. 4. 5. 6. ); }; Page=reduxForm({ 表单:“向导”, DestroyOnMont:false, ForceUnregisterOnMonount:true })(第页); 常量选择器=formValueSelector('向导') 页面=连接( 状态=>{ 常量numFields=选择器(状态为“numFields”); 返回{ numFields } } )(第页) 导出默认页面;
您找到解决方案了吗?我也需要这样做。我记得我在了解了更多关于redux表单和redux的知识后解决了这个问题。阅读有关操作更改的文档,它是redux格式的。所以我对下拉列表做了一个onChange函数,然后它发送了动作更改。