Реактивная функция prop возвращает _function - PullRequest
1 голос
/ 23 апреля 2020

У меня действительно странная проблема,

У меня есть компонент, который получает функцию prop:

<MyMenu
  prop1={prop1}
  myFunction={() => myFunction()}>
</MyMenu>

myFunction определена в компоненте класса, который переносит MyMenu, и отправляется в качестве опоры для других компонентов этого класса, он работает.

Но по какой-то странной причине, когда я пытаюсь вызвать myFunction () внутри MyMenu, я получаю ошибку типа, говорящую, что это не функция.

Когда я console.log (myFunction), я получаю:

myFunction() {
   return _myFunction()
 }

Кто-нибудь знает, что здесь происходит? Спасибо!

1 Ответ

1 голос
/ 23 апреля 2020

На основе вашего описания

myFunction определена в компоненте класса, который обертывает MyMenu, и отправляется в качестве поддержки другим компонентам этого класса,

Я предполагаю, что myFunction - это метод в родительском классе, который отображает MyMenu.

Вы передаете анонимную функцию, которая вызывает myFunction в MyMeny

<MyMenu
  myFunction={() => myFunction()}>
</MyMenu>

Однако, поскольку myFunction является методом, он не доступен как свободная переменная и доступен только через this родительского класса.

Итак, вы передаете функцию в MyMenu, но затем эта функция пытается вызвать что-то, что не является функцией.

Примерно так должно решить вашу проблему:

<MyMenu
  myFunction={() => this.myFunction()}>
{/*                 ^^^^            */}
</MyMenu>
...