开发者问题收集

我可以在 javascript 类中更新 Context API 状态吗?

2022-04-27
511

我有一个蓝牙类和侦听器方法。我想在蓝牙类中更新我的状态,我将在功能组件中显示。

javascript类

116833290

这是我的错误。

481589309
2个回答

是的,你可以使用 Context API 将数据传递到你的组件树。

// Context file 
import React from 'react';
const FormContext = React.createContext();
export default FormContext;
// Parent Class Component 
import FormContext from "../context";
class ParentClass extends Component {
  state = { name: "John Doe" };
  render() {
    return (
      <FormContext.Provider value={this.state.name}>
        <ChildClass />
      </FormContext.Provider>
    );
  }
}
// Child Class Component
import FormContext from "../context";
class ChildClass extends Component {
  render() {
    return (
      <FormContext.Consumer>
        {(context) => {
          console.log(context);
        }}
      </FormContext.Consumer>
    );
  }
}

Context API 中的 value prop 接受一个对象,你可以在其中添加一个方法来改变你的状态并将其传递给你的组件树。

我建议你快速浏览一下 React 的官方 Context API 文档,以便更好地理解。

Amr
2022-04-27

感谢大家的回答。但我的意思是纯粹的“javascript 类”,而不是组件,没有渲染,并且 React Hooks 是基于组件的。最后,我通过回调函数解决了这个问题。

omerfarukose
2022-04-27