Что произойдет, если вы используете props в исходном состоянии? в REACT




88
Что произойдет, если вы используете props в исходном состоянии? в REACT
Рейтинг 10 из 10. Голосов: 1294
Ваша оценка:

Если

props  

компонента изменяются без обновления компонента, новое значение реквизита никогда не будет отображаться, потому что функция конструктора никогда не обновит текущее состояние компонента. Инициализация состояния из реквизита выполняется только при первом создании компонента.

Компонент ниже не будет отображать обновленное значение ввода:

class MyComponent extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      records: [],
      inputValue: this.props.inputValue
    };
  }

  render() {
    return <div>{this.state.inputValue}</div>
  }
}

Использование реквизита внутри метода render обновит значение:

class MyComponent extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      record: []
    }
  }

  render() {
    return <div>{this.props.inputValue}</div>
  }
}

Вопросы и ответы


Оставить комментарий

ответить