gpt4 book ai didi

reactjs - redux-form,根据其他字段值设置字段可见性

转载 作者:行者123 更新时间:2023-12-03 13:47:57 26 4
gpt4 key购买 nike

我有一个复杂的表单,其中某些字段的可见性取决于其他字段的值。如何根据 redux-form 中其他字段的值设置字段的可见性?

const renderField = ({ input, label, type, display='flex',  meta: { touched, error } }) => (
<div style={ { display: display }}>
<label>{label}</label>
<div>
<input {...input} type={type} placeholder={label}/>
{touched && error && <span>{error}</span>}
</div>
</div>
)



const renderMembers = ({ fields, meta: { touched, error } }) => (
<ul>
<li>
<button type="button" onClick={() => fields.push({})}>Add Member</button>
{touched && error && <span>{error}</span>}
</li>
{fields.map((member, index) =>
<li key={index}>
<button
type="button"
title="Remove Member"
onClick={() => fields.remove(index)}/>
<h4>Member #{index + 1}</h4>
<Field
name={`${member}.firstName`}
type="text"
component={renderField}
label="First Name"/>
<Field
name={`${member}.lastName`}
type="text"
component={renderField}
label="Last Name"/>
<Fields names={[ `${member}.firstName`, `${member}.lastName` ]} component={renderFields}/>
<FieldArray name={`${member}.hobbies`} component={renderHobbies}/>
</li>
)}
</ul>
)

最佳答案

假设您有一个包含 2 个字段的表单:

const fields = [
'foo',
'bar'
]
reduxForm(
{
form: 'AwesomeForm',
fields
}
)(AwesomeForm)

根据 <AwesomeForm/> 中的其他字段值控制字段可见性组件,可以设置对应的display内联样式的值。只需进行验证,检查其他值是否满足所需条件。喜欢:

export const AwesomeForm = (props) => {
return (
<form onSubmit={props.handleSubmit}>
<TextField
{...props.fields.foo}
/>
<TextField
{...props.fields.bar}
style={{
display: props.fields.name.foo === 'some value' ? 'none' : 'block',
}}
/>

<button
type='submit'
/>

</form>

)
}

关于reactjs - redux-form,根据其他字段值设置字段可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39911459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com