gpt4 book ai didi

javascript - React - 在从另一个类调用的函数中调用 setState 不会抛出函数异常

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:45 25 4
gpt4 key购买 nike

我在这里想要实现的是,我希望通过从类 A 调用 B 的函数 init() 来更新导入类 B 的状态中的值。我正在初始化一个B类的new对象,并通过该对象调用init函数。

A 级

  import B from 'b.js'

class A extends Component{
componentDidMount(){
const b=new B();
b.init("hey");
}
}

B 类 中:我正在使用 init 函数更新状态,但似乎出现了 setState is not a function 错误。我也试过在构造函数中绑定(bind) init 函数,但错误仍然存​​在。

    class B extends Component{
constructor(props){
super(props);
state = {
text:""
}
}

init=(text)=>{
this.setState({text})
}
}

最佳答案

您实际上并不需要 init,这就是 constructor 的用途。你应该在创建它时将文本作为 prop 传递给组件 B:

import B from 'b.js';

class A extends Component {
componentDidMount() {
const b = new B({ initialText: 'hey' });
}
}

然后您可以在 B 的构造函数中设置状态。

state = {
text: prop.initialText,
};

不过要小心,从 prop 设置状态通常不是一个好主意。请参阅此处的注释 block https://reactjs.org/docs/react-component.html#constructor了解更多详情。

关于javascript - React - 在从另一个类调用的函数中调用 setState 不会抛出函数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com