减速器是这样的:
import {
CREATE_COUNTRY,
} from "../actions/actionConsts"
export const storeInitialState = {
countries: [],
otherThings: 0
}
export default function countriesReducer(prevState = storeInitialState, action) {
switch (action.type) {
case CREATE_COUNTRY:
return {
...prevState,
countries: [
...prevState.countries,
action.country
]
}
default:
return prevState
}
}
动作Creator是
export function createCountryActn(country) {
return {
type: CREATE_COUNTRY,
country
}
}
和我触发动作的组件
… … … … …
createTheCountry = (e) => {
e.preventDefault()
this.props.createCountry(this.state.name)
this.setState({
name: '',
})
}
… …… … … …
是什么导致每次添加新项目时商店的状态都重新启动?
拉斐尔
我当时不知道是什么导致了这个错误,但后来我发现了。
每次添加新项时,一切都会重新启动,因为我调用创建新项的函数的方式丢失了对e (event)的引用,所以当我执行
时e.preventDefault()
因为e没有正确的值,页面的默认行为实际上正在执行,它是一个刷新。
我使用类组件,我调用函数为:
onSubmit={this.createTheActivity}
它必须像
onSubmit={(e) => this.createTheActivity(e)}