如何在反应原生中以redux形式设置隐藏字段?

时间:2017-05-27 14:33:59

标签: react-native react-redux-form

如何在react native中以redux形式设置隐藏字段?

我jsut找不到任何方法如何做到这一点。有什么帮助吗?

4 个答案:

答案 0 :(得分:8)

我结束了这个:

this.props.dispatch(change("FORM_NAME","FIELD_NAME","VALUE")) 

运行此代码后,如果该字段不存在,表单将创建该字段

答案 1 :(得分:5)

我遇到了同样的问题。 我所做的是声明一个像这样的字段并将高度设置为0。 它有点hacky但它​​适用于我的情况。

<Field
    component={TextInput}
    name="departure_city_name"
    type="hidden"
    style={{ height: 0 }}
/>

我改变了这样的值:this.props.change("departure_city_name", cityData.name);

希望它有所帮助。

答案 2 :(得分:1)

只要您需要redux形式的隐藏字段,就不需要执行任何操作即可。

this.props.change('Field_name', value)

答案 3 :(得分:0)

通常,您不需要创建type = hidden字段,因为您可以从Redux表单包装的表单道具中调用change函数,如果尚不存在,它将创建该字段并将其添加如果您要定义默认值,或者要确保该字段始终存在,则可以设置刚刚设置的语音,因此您需要设置默认值:

InitializeFromStateForm = reduxForm({
  form: 'myForm'
})(InitializeFromStateForm)

InitializeFromStateForm = connect(
  state => ({
    initialValues: { areYouOk: 'no' }
  })
)(InitializeFromStateForm)

export default InitializeFromStateForm

无论您是否设置了初始值,您都将始终能够使用新的隐藏值调用change函数,并且无论如何它都将起作用

  let InitializeFromStateForm = ({ submitHandler, change }) => {
    return (
      <form onSubmit={submitHandler}>
        <button
         onClick={() => {
           change('areYouOk', 'yes');
         }}
         label={'Yes'}
        />
      </form>
    );
  }