(React Redux)当我添加一个新项目时,整个状态重新启动并删除所有更改



减速器是这样的:

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)}

相关内容

  • 没有找到相关文章

最新更新