Проблемы React Hooks в React 16.7 TypeError: Object (...) не является функцией - PullRequest
0 голосов
/ 20 декабря 2018

Я использую последнюю версию React и получаю эту ошибку enter image description here У меня есть простой компонент, использующий зацепки React, как вы можете видеть здесь:

import React, { useState } from "react";

const AppFunction = () => {
  const [count, setCount] = useState(0);

  const incrementCount = () => {
    setCount(count + 1);
  };
  return (
    <div>
      <h1>Count:{count} </h1>
      <button onClick={incrementCount}>Click Me</button>
    </div>
  );
};

export default AppFunction;

Все, что я нашел об этом при переполнении стека, говорит об обновлении библиотек, но у меня последняя версия (16.7.0), и я безуспешно пробовал альфа-версию, что я делаю не так?

пакет.json

"dependencies": {
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-scripts": "2.1.1"
  },

Ответы [ 3 ]

0 голосов
/ 23 декабря 2018

изменить package.json

"react": "16.7.0-alpha.2",
"react-dom": "16.7.0-alpha.2",
"react-router-dom": "4.4.0-beta.6",

и запустить yarn

Реакция выпущена 16.7.0, но нет никаких реактивных ловушек.Если вы используете '^react@16.7.0-alpha.2', удалите yarn.lock, он установит response@16.7.0.Поэтому вы должны удалить '^' и использовать'react@16.7.0-alpha.2'.

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

Я попытался использовать следующее в package.json, но не работает.

"react": "16.7.0-alpha.2",
"react-dom": "16.7.0-alpha.2",

Что сработало, так это

"react": "next",
"react-dom": "next",

РЕДАКТИРОВАТЬ

Реактивная версияv16.8.0 имеет крючки внутри.Используйте это.

0 голосов
/ 20 декабря 2018

ОБНОВЛЕНИЕ

Крючки теперь выпускаются как часть React v16.8.0.Вы можете использовать хуки, обновив свою реактивную версию

См. документы для получения дополнительной информации об API


Реакция 16.7.0.не содержит крючков

Согласно блогу React

В нашем последнем выпуске содержится важное исправление производительности для React.lazy.Хотя изменений в API нет, мы выпускаем его как второстепенный вместо патча.

Чтобы запустить ловушки в вашем коде, обратитесь к Как использовать новые функциональные ловушки в React

...