Как исправить ошибку «Ожидаемое возвращаемое значение будет 31-разрядным целым числом» - PullRequest
1 голос
/ 07 апреля 2019

Я создал счетчик для опытных хуков с контекстным API, все работает, но у меня есть предупреждение:

Предупреждение: convertChangedBits: Ожидаемое возвращаемое значение будет 31-разрядным целым числом.Вместо полученного: undefined

мой контекст

export const CountCtx = createContext(0, () => {});

function CountContext() {
  const [count, setCount] = useState(0);

  return (
    <div className="cp1">
      <CountCtx.Provider value={[count, setCount]}>
        <p>Component where i created the context 'CountCtx'<br/>Counter is {count}</p>
        <button onClick={() => setCount(count + 1)}>Increment</button>
        <ComponentA/>
      </CountCtx.Provider>
    </div>
  )
}

Компонент A

function ComponentA() {
  const [count, setCount] = useContext(CountCtx);

  return (
    <div className="cp2">
      <p><b>Component A</b><br/>Counter is {count}</p>
      <button onClick={() => setCount(0)}>Reset</button>
      <ComponentB/>
    </div>
  )
}

Компонент B

function ComponentB() {
  const [count, setCount] = useContext(CountCtx);

  return (
    <div className="cp3">
      <p><b>Component B</b><br/>Counter is {count}</p>
      <button onClick={() => setCount(count -1)}>Decrement</button>
    </div>
  )
}

СпасибоМного я не понимаю это предупреждение: - /

1 Ответ

2 голосов
/ 07 апреля 2019

Второй параметр в createContext равен недокументирован calculateChangedBits функция обратного вызова .

Так как был предоставлен неверный обратный вызов, это препятствует работе контекста:

export const CountCtx = createContext(0, () => {});

Должно быть:

export const CountCtx = createContext(0);
...