我正在查看this article的redux的超级基本实现的示例。我了解它,除非派遣使用prevState
。首先,这个函数从哪里获得prevState?这与计数器需要的实际状态有什么关系?它是否隐式地在名为prevState的状态中设置了另一个值?我只是很难理解状态是如何传递给dispatch,然后通过prevState反转的。我认为这可能是一个函数式编程思想,我还没有掌握。谢谢你帮助我理解!了解Redux |的基本实现prevState如何使用?
import React, { Component } from 'react';
const counter = (state = { value: 0 }, action) => {
switch (action.type) {
case 'INCREMENT':
return { value: state.value + 1 };
case 'DECREMENT':
return { value: state.value - 1 };
default:
return state;
}
}
class Counter extends Component {
state = counter(undefined, {});
dispatch(action) {
this.setState(prevState => counter(prevState, action));
}
increment =() => {
this.dispatch({ type: 'INCREMENT' });
};
decrement =() => {
this.dispatch({ type: 'DECREMENT' });
};
render() {
return (
<div>
{this.state.value}
<button onClick={this.increment}>+</button>
<button onClick={this.decrement}>-</button>
</div>
)
}
}
哦有趣,谢谢你。我没有意识到你有两个选择setState - 对象或函数。我只用过这个对象来设置新的状态。是否可以使用该函数的回调函数,使这4个选项? – Turnipdabeets
嗯,我链接到了文档,并概述了我的答案中可用的** 3 **选项。 'setState'有** 3 **可供选择;不是2或4. – naomik
好吧,看起来回调只能与文档中的对象配对。但它没有给出使用该回调的例子,或者为什么你需要回调。 – Turnipdabeets