объявление функции против лямбды (в реакции?) - PullRequest
0 голосов
/ 11 июня 2019

Я делаю учебник по списку дел в реакции, и он терпел неудачу, потому что я написал что-то вроде этого:

class TodoItems extends Component {
  createTasks(item) { // define it as a function
      // using “this” here breaks the app
      ...

   }
}

И правильный способ сделать это -

class TodoItems extends Component {
    createTask = (item) => { // using a lambda 
       // using this here is ok
       ...
     }
}

Пример исходного кода: https://github.com/therj/react-todo (в частности здесь )

Почему this не определено в первом?

Я пытался объявить класс с помощью интерпретатора узла, но приглашение никогда не вернулось

> class A {}
undefined
> class TodoItems /*extends Component*/ {
...     createTasks= (item) => {
.....         return (
.......             <li key={item.key} onClick={() => this.props.deleteItem(item.key)}>
.......                 {item.text}
.......
...             </li>
...         )
...     }
...
...     render() {
...         const todoEntries = this.props.entries
...         const listItems = todoEntries.map(this.createTasks)
...         return <ul className="theList">{listItems}</ul>
...     }
... }
...
...
>
(To exit, press ^C again or type .exit)

Не уверен, связано ли это с реакцией, es6 или чем-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...