Вы можете написать
let firstNameValid = this.state.firstNameValid;
firstNameValid = value.length >= 1;
this.setState({ firstNameValid, firstNameValid,})
как краткий синтаксис
this.setState({ firstNameValid})
Я пробовал приведенный выше код, похоже, он работает нормально. Просто интересно, будет ли у него какой-нибудь побочный эффект?
хорошо, я вижу. Благодарность!!!





если вы имеете в виду, что вы пишете
this.setState({foo: foo})
и теперь вы используете this.setState({ foo })
нет разницы.
Но setState, скорее всего, будет иметь побочный эффект, во-первых, потому что он асинхронный, а во-вторых, потому что вы меняете состояние всего компонента и вызываете рендеринг.
Между прочим, этот короткий способ назначения объектов - это функция JS, не имеющая отношения к реакции.
react использует ES2015 (с webpack и babel).
setState принимает параметры, которые являются объектами.
В ES2015 { a : a } такой же, как { a } (сокращенная запись объекта).
Итак, x = { a : a, b : b ...} такой же, как x = { a, b ..}
Таким образом, ваш код абсолютно действителен и не будет иметь никаких побочных эффектов.
this.setState({ firstNameValid }) - это просто сахар для this.setState({ firstNameValid: firstNameValid }). Никаких побочных эффектов.
Они называются shorthand property names, и вы можете узнать о них больше здесь.
this.setState({ firstNameValid })- это просто сахар дляthis.setState({ firstNameValid: firstNameValid }). Никаких побочных эффектов.