Reactjs 如何更改类组件React native中的useEffect?
我想把代码从一个函数重写到另一个类,但我被useEffect函数卡住了 我有一个在添加新元素后更新的数组,但函数countTotal在更新后开始工作。 所以 1) open App myArray有两个对象,总和=0(但应为300) 2) 将总和为100的新对象添加到myArray中三个对象,总和=300(应为400) 我试图添加componentDidMount和componentDidUpdate,但什么都没有。Reactjs 如何更改类组件React native中的useEffect?,reactjs,react-native,components,Reactjs,React Native,Components,我想把代码从一个函数重写到另一个类,但我被useEffect函数卡住了 我有一个在添加新元素后更新的数组,但函数countTotal在更新后开始工作。 所以 1) open App myArray有两个对象,总和=0(但应为300) 2) 将总和为100的新对象添加到myArray中三个对象,总和=300(应为400) 我试图添加componentDidMount和componentDidUpdate,但什么都没有。 有什么建议吗?您发布的代码似乎运行良好。我已经创建了代码沙盒url 上面代码
有什么建议吗?您发布的代码似乎运行良好。我已经创建了代码沙盒url 上面代码中功能组件和类组件之间的唯一区别是 在这里,每次更改开支时都会调用useEffect,但在装入组件后,只会调用componentDidMount一次。因此,我们必须创建一个函数,并在每次费用更新时调用该函数
setState(updater, [callback])
因此,在调用setState时,我们可以将回调函数传递给setState并更新总值
因为setState是异步的,所以应该在回调中给出Count total
this.setState(prevState => ({
expenses: [obj, ...prevState.expenses]}), countTotal)
谢谢你的回答。是的,我的代码有效。。。它们的一部分。我将阅读有关回调的文章。我的问题有点变了。我已经更新了答案,你能查一下吗。在setState@Vovathanks中添加了回调!它起作用了。也许你知道如何在这里显示这个sumTotal->openappmyarray有两个对象,Total sum=0(但应该是300)。因为它只适用于componentDidMount…我使用与countTotal相同的代码添加componentDidMount,不确定它是否正确,但它运行良好。再次感谢
setState(updater, [callback])
this.setState(prevState => ({
expenses: [obj, ...prevState.expenses]}), countTotal)