2016-04-26 2 views
2

Я не понимаю, почему мое состояние не обновляется в этом коде. Я рассмотрел ответ here, но, похоже, не ответил на мой вопрос b/c. У меня есть только один компонент для привязки.Почему мое обновление не обновляется в React.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 

class App extends React.Component { 
    constructor() { 
     super(); 
     this.state={ 
      headline: 'this is headline state', 
      cat: 25 
     } 
    } 

    update(e) { 
     this.setState=({headline: e.target.value}) 
    } 

    render() { 
     let headline=this.state.headline 
     return (
      <div> 
       <input type="text" 
       onChange={this.update.bind(this)} /> 
       <h1>{headline}</h1> 
      </div> 
     ); 
    } 
} 

App.propTypes = { 
    headline: React.PropTypes.string, 
    cat: React.PropTypes.number 
} 

ReactDOM.render(
    <App />, 
    document.getElementById('app') 
    ); 
+0

Также немного сокращения шаблонов, вам не нужно использовать конструктор для установки состояния по умолчанию, вы можете использовать 'componentWillMount() {this.setState ({ваше начальное состояние})}' – Foxhoundn

ответ

4

setState является метод не свойство, удалить =

update(e) { 
    this.setState({ headline: e.target.value }); 
} 

Example

+1

Большое спасибо – jamesscaggs

1

Там есть тип в вашем коде:

this.setState=({headline: e.target.value}) 

Должно быть

this.setState({headline: e.target.value}) 

Остальное выглядит хорошо.

Смежные вопросы