我如何使用状态值更新上下文值

How can i update context value with the state value

我可以接收到正确的对象,但我无法使用状态值已更新的对象来更新上下文值

在:

const Context = createContext({
  theme: dark,
  toggleTheme: () => {},
});

我要制作主题:dark, become, theme: defaultTheme, useState修改动态值

import React, { createContext, useState } from 'react';

import light from '../themes/light';
import dark from '../themes/dark';

const Context = createContext({
  theme: dark,
  toggleTheme: () => {},
});

export default Context;

export function ThemeContextProvider({ children }) {
  const [defaultTheme, setDefaultTheme] = useState(dark);

  function toggleTheme() {
    setDefaultTheme(defaultTheme === dark ? light : dark);
  }
  
  return (
    <Context.Provider value={{ theme, toggleTheme }}>
    {children}
    </Context.Provider>
  )
}

您正在将 undefined 值传递给上下文提供程序。 (themeThemeContextProvider 组件 中未定义)。您需要改为传递 defaultTheme

<Context.Provider value={{ theme: defaultTheme, toggleTheme }}>
    {children}
</Context.Provider>

Codesandbox