onChange函数在使用Redux

时间:2017-11-07 10:00:13

标签: reactjs redux react-redux redux-form

我正在编写一个简单的代码,它将生成一个包含数据的输入框。当我更改输入框中的数据时,应该更新数据库。我正在使用onChange函数将触发一个动作来实现这一点,但onChange似乎根本没有触发。浏览器一直显示"警告:失败的表单propType:您为表单提供了value道具.."。

以下是我的代码:



import React, {Component} from 'react';
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import {handleChange} from '../actions/handleChange';


class NoteSelected extends Component {
   render() {   // onChange to be added
        const inputStyle = {width: "100%"};
        if(!this.props.noteSelected)
            return (<h4>Select a note..</h4>)
        return (
            <div className="col-sm-9 col-md-6 col-lg-8" >
            <h4>{this.props.noteSelected.heading}</h4>
            <input key={this.props.noteSelected.id} id={this.props.noteSelected.id} 
             value={this.props.noteSelected.text} onChange={this.props.handleChange} style={inputStyle} />
        </div>
        )
    }
}

function mapStateToProps (state) {
    return {
        noteSelected: state.noteSelected
    }
}

function mapDispatchToProps(dispatch) {
    return bindActionCreators({handleChange: handleChange}, dispatch)
}

export default connect (mapStateToProps, mapDispatchToProps) (NoteSelected);
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

问题实际上与此链接相同:Failed form propType: You provided a `value` prop to a form field without an `onChange` handler

只需将value更改为defaultValueplaceholder即可解决问题。