这周,我一直在尝试创建一个搜索栏过滤器,因此我创建了一个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
}
}
答案 0 :(得分:0)
我想您已经完成本主题,并且您已经是Redux Pro。但是,看起来您好像忘记了开关盒中的中断声明。
这可能会导致错误。如果您仍在使用redux,则可能已经知道新的redux toolkit。它可以更快地编写redux的每个部分,并帮助您保持更好的概览。由于类型安全性,我建议使用打字稿,但这只是选择的问题。