2017-04-02 18 views
1

私はNodeJSを使用しています。入力タイプ 'text'を入力できません

私のcoursePage.jsには私のcomponenetがあります。問題があるのは、私が実行したときにInputTypeを入力することができないということです。私のコードでエラーは見られません(コンソールには何も表示されません)。

import React , {PropTypes} from 'react'; 
import {connect} from 'react-redux'; 
import * as courseActions from '../../actions/courseActions'; 

class coursesPage extends React.Component{ 

    constructor(props, context) { 
    super(props, context); 

    this.state = { 
     course: {title: ""} 
    }; 

    this.onTitleChange= this.onTitleChange.bind(this); 
    this.onClickSave= this.onClickSave.bind(this); 
    } 

    onTitleChange(event){ 
    const course = this.state.course; 
    course.title = event.target.value; 
    this.setState=({course: course}); 
    } 

    onClickSave(){ 
    this.props.dispatch(courseActions.createCourse(this.state.course)); 
    } 
    courseRow(course,index){ 
    return <div key = {index}>{course.title}</div>; 
    } 

    render(){ 
    return(
     <div> 
     <h1>Courses</h1> 
     {this.props.courses.map(this.courseRow)} 
     <h2>Add Course</h2> 
     <input 
      type="text" 
      onChange={this.onTitleChange} 
      value={this.state.course.title}/> 

     <input 
      type="submit" 
      value="Save" 
      onClick={this.onClickSave}/> 
     </div> 
    ); 
    } 
} 
coursesPage.propTypes = { 
    dispatch: PropTypes.func.isRequired, 
    courses: PropTypes.array.isRequired 
}; 

function mapStateToProps(state, ownProps){ 
    return{ 
    courses : state.courses 
    }; 

} 
export default connect(mapStateToProps)(coursesPage); 
+4

おそらく、 'setState'の後に' = 'charが間違っています。 'this.setState =({コース:コース});'ちょうど 'this.setState({コース:コース});' – Artin

+0

ありがとう! – Tal

答えて

1

このsetStateは関数と似ていますので、 '='が間違っている可能性があります。

0

問題は、あなたが間違った方法でstate値を更新しているが、これを試してみてください。

const course = this.state.course; 
course.title = event.target.value; 
this.setState({course}); 

state値を更新するために、我々は代わりに割り当てるので、objectsetStateでを渡す必要がありますobject;

+0

なぜdownvote、今何が私の答えに間違っている、誰もdownvoting理由を提供してください、私は専門家ではない:)、私はあなたが答えを投票してダウンしている名前を提供する必要があると思うので、その男、downvoteの理由。 anyonesの答えが良いとは思わないか、またはimporvementをコメントに書いたり、あなた自身の答えを書いたりする必要があります。誰もが何かを学ぶことができます。 –

+0

setState({course})とsetState({course:course})は同じものですが、事実上違いはありません。明確にするために、私は –

+0

@ShubhamKhatriをdownvotedした人ではありません。彼は 'this.setState =({})'を使って彼の質問をチェックして、私は彼に '' setState({})なぜ私が答えを投票したのかというと、私は理由を求めていたのですが、誰かがこれをdownvotedしています:)私はあなたが非常によくあなたの上の答えに従うことを知っています:) –

関連する問題