TypeError:动作在我的搜索栏上未定义

时间:2018-11-03 15:38:00

标签: javascript reactjs redux react-redux

这周,我一直在尝试创建一个搜索栏过滤器,因此我创建了一个redux来处理搜索栏上输入值的状态更改。当我尝试在正确连接Redux的情况下启动时,假定错误在我的搜索栏减速器内,它给我“动作未定义”。你们可以帮我解决这个问题吗?

这是我的搜索栏(输入和按钮)和MapStateToProps

                <div className={classes.searchbar} id="searchbar">
                <form id="Searchbar">
                  <input 
                    type="text" 
                    class="parametro" 
                    id="parametro" 
                    onChange={(e) => Filter(e.target.value)}
                    value={value}
                   />

                    <Searchbar link={"/produtos?nome=" + value}>    
                        <button type="submit" >
                            Pesquisar!
                        </button>
                    </Searchbar>
                </form>
            </div>

const mapStateToProps = state => {
return {
    isAuthenticated: state.authRdc.token,
    value: state.searchbarRdc.searchbar
};

};

这是我的减速器

import * as actionTypes from 'store/actions/actionTypes';
import { updateObject } from 'utils/updater';

const initialState = {
    value: null,
    parametro: null
}

const Filter = (state, action) => {
    return updateObject(state, { value: action.searchbar });
}

const reducer = (state = initialState, action) => {

    switch (action.type) {
        case actionTypes.UPDATE_FILTER:
            return Filter(state, action);

        default:
            return state;
    }
}

export default reducer;

和我的动作:

import * as actionTypes from './actionTypes';

export const Filter = (value) => {
    return {
        type: actionTypes.UPDATE_FILTER,
        value: value
    }
}

1 个答案:

答案 0 :(得分:0)

我想您已经完成本主题,并且您已经是Redux Pro。但是,看起来您好像忘记了开关盒中的中断声明。

这可能会导致错误。如果您仍在使用redux,则可能已经知道新的redux toolkit。它可以更快地编写redux的每个部分,并帮助您保持更好的概览。由于类型安全性,我建议使用打字稿,但这只是选择的问题。