1

减速器是这样的:

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: '',
        })
    }

… …… … … … 


是什么导致商店的状态在每次添加新商品时重新启动?

拉斐尔

4

1 回答 1

1

我当时不知道是什么导致了错误,但后来我发现了。

每次我添加一个新项目时,一切都会重新启动,因为我调用创建新项目的函数的方式是失去对 e(事件)的引用,所以当我执行

e.preventDefault()

由于 e 没有正确的值,页面的默认行为实际上正在执行,并且是刷新。

我正在使用类组件,我将函数调用为:

onSubmit={this.createTheActivity}

它必须像

onSubmit={(e) => this.createTheActivity(e)}
于 2021-02-20T23:32:20.827 回答