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