无法使用redux-form获取TextInput的值

时间:2018-04-06 16:35:05

标签: javascript react-native redux redux-form

我正在使用React原生,我想使用 Redux-Form this文章后面TextInput提交文字, 如果我输入文本,它会按预期工作,但是当我将value的{​​{1}}属性设置为某个字符串时,提交后我会得到一个空对象。

它仅在我输入文本时有效,但在我将其设置为某个值时无效。

这是我使用的TextInput部分:

TextInput

希望你能帮助我, 谢谢。

1 个答案:

答案 0 :(得分:0)

我通过将功能组件更改为类组件并使用componentDidUpdate()生命周期方法检查道具在将组件传递给组件时是否已更改并调用this.props.input.onChange(this.props.value);因为input来解决此问题。也可以使用值调用,因此传递this.props.value

来自Redux Form API(字段组件):

  

input.onChange(eventOrValue)   表单字段更改时调用的函数。它希望接收React SyntheticEvent或字段的新值。

这是全班组件:

class CounterField extends React.Component {
  constructor(props){
      super(props);
  }

  componentDidUpdate(){
    this.props.input.onChange(this.props.value);
  }

  render(){
    return (
        <View style={{paddingTop: 20, width: 30}}>
            <TextInput
                name='title'
                onChangeText={this.props.input.onChange}
                editable={false}
                value={this.props.value}
                style={{fontSize: 20, textAlign: 'center', fontWeight: 'bold'}}
                placeholder={'0'}
            />
        </View>

    )
  }
}