reactjs - react - Cómo establecer programáticamente el valor del campo Redux-Form
redux form react native (1)
Puede tener la lógica onChange en this.handleSelectChange({ value, type: input.name })
y usar change
action de redux-form
De acuerdo con los documentos:
cambio (campo: Cadena, valor: cualquiera): Función
Cambia el valor de un campo en la tienda de Redux. Este es un creador de acciones encuadernado, por lo que no devuelve nada.
Código:
handleSelectChange = (value, type) => {
if(type === "site") {
this.props.change(''net'', "newValue");
}
}
const mapDispatchToProps = (dispatch) => {
return bindActionCreators({change}, dispatch);
}
Cuando uso redux-form
v7, encuentro que no hay forma de establecer el valor del campo. Ahora en mi form
tengo dos componentes select
, el valor del segundo será claro cuando cambie el primer valor del componente select
.
en clase render:
<div className={classNames(style.line, style.largeLine)}>
<div className={style.lable}>site:</div>
<div className={style.content}>
<Field
name="site"
options={sites}
clearable={false}
component={this.renderSelectField}
validate={[required]}
/>
</div>
</div>
<div className={classNames(style.line, style.largeLine)}>
<div className={style.lable}>net:</div>
<div className={style.content}>
<Field
name="net"
options={nets}
clearable={false}
component={this.renderSelectField}
validate={[required]}
warning={warnings.net}
/>
</div>
</div>
Ahora agrego el gancho de cambio de select
, y cómo puedo cambiar el otro valor de select
renderSelectField = props => {
const {
input,
type,
meta: { touched, error },
...others
} = props
const { onChange } = input
const _onChange = value => {
onChange(value)
this.handleSelectChange({ value, type: input.name })
}
return (
<CHSelect
error={touched && error}
{...input}
{...others}
onChange={_onChange}
onBlur={null}
/>
)
}