почему это вызывает ошибку неиспользуемого выражения?
<input style={{margin:'25px 50px 0',textAlign:'center'}}
type='text' placeholder='add ToDo'
onKeyPress={e =>{(e.key ==='Enter' ? this.addTodo(e.target.value):null) }} />
почему это вызывает ошибку неиспользуемого выражения?
<input style={{margin:'25px 50px 0',textAlign:'center'}}
type='text' placeholder='add ToDo'
onKeyPress={e =>{(e.key ==='Enter' ? this.addTodo(e.target.value):null) }} />
Вы заключаете свою функцию в { }, но не возвращаете никакого значения. Удалите { }, и это должно работать, поскольку функция стрелки имеет неявное возвращаемое значение, иначе вам нужно использовать «return», чтобы вернуть ответ, если вы хотите обернуть его внутри { }.
Попробуйте это:
onKeyPress={e =>(e.key ==='Enter' ? this.addTodo(e.target.value):null) } />
Здесь дополнительная информация, прочитайте часть, связанную с темой «Тело функции» ближе к концу: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Ответ iceveda06 показывает, как это исправить, позвольте мне немного объяснить само это правило eslint:
Присваивания и вызовы функций имеют побочные эффекты (не совсем верно, пустая функция, например, не имеет побочного эффекта, но в случае вызываемая функция точно делает), что мы в конечном итоге и делаем при написании кода, с другой стороны, только выражения являются допустимыми утверждениями в javascript, например foo ? 1 : 2;
, но большинство из них (кроме присваиваний и вызовов функций) не имеют побочного эффекта, поэтому не влияют на всю программу, поэтому не стоит считать их плохим кодом.
Отметьте этот вопрос, чтобы узнать, как отличить выражение от утверждения.
Можете ли вы отредактировать свой пост, чтобы включить сообщение об ошибке. Спасибо.