Увеличение с помощью клавиши со стрелкой - PullRequest
0 голосов
/ 30 января 2019

У меня есть ситуация, когда мне нужно иметь возможность добавить «активный» в зависимости от того, нажму ли я клавишу со стрелкой влево или клавишу со стрелкой вправо.По сути, я просто пролистываю меню.Я получаю неопределенное возвращаемое значение, когда пытаюсь установить свое состояние.

Ошибка: 'Не удается прочитать свойство' курсор 'из неопределенного'

Menu.js

...

class Menu extends Component {
  constructor(props) {
    super(props);
    //set active-state to name of button label
    this.state = {
      activeTab: this.props.children[0].props.label,
      cursor: 0,
    };
  }
  ...

1 Ответ

0 голосов
/ 30 января 2019

Вам необходимо привязать handleKeyDown() к классу следующим образом:

constructor(props) {
    super(props);
    //set active-state to name of button label
    this.state = {
      activeTab: this.props.children[0].props.label,
      cursor: 0,
    };

    // bind the 'this' of the class to the function so this.state can be reached
    this.handleKeyDown = this.handleKeyDown.bind(this); 
  }

В основном, когда вам нужно работать с методом класса, который должен использовать переменную класса, такую ​​как this.state, вам необходимосвяжите «это» с функцией.См. React Docs здесь

...