[英]React-Redux TypeError: dispatch is not a function
我正在嘗試為我的React TODO App創建一個搜索欄。
這是我的Searchbar類:
import React, { Component } from 'react';
import { FilterTasks } from '../../redux/actions/searchbar';
import searchreducer from '../../redux/reducers/searchbar';
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
class SearchBar extends Component{
constructor(props){
super(props);
this.state = {term: ''};
}
render(){
return(
<div>
<input
className='searchbar'
placeholder="Filter by task"
onChange={term => this.props.FilterTasks(term.target.value)} />
</div>
);
}
}
function MapDispatchToProps(dispatch){
return bindActionCreators({FilterTasks},dispatch);
}
export default connect (MapDispatchToProps)(SearchBar);
這是我的動作:
export const FilterTasks = (filter) => {
return {
type: 'FILTER_TASKS',
filter
}
}
這是我的減速器:
const SearchReducer = (state = {},action) =>{
switch(action.type){
case 'FILTER_TASKS':
return {
tasks: state.tasks.filter(it => it.task.toLowerCase().includes(action.filter.toLowerCase()))
};
break;
}
return state;
}
當我在搜索欄上寫下任何內容時,我會自動收到錯誤消息:
Uncaught TypeError: dispatch is not a function
at Object.FilterTasks
有什么想法嗎?,我不確定我的搜索欄是否實現得很好。
作為第一個參數, connect
希望獲得mapStateToProps
函數。 因此,您需要顯式傳遞undefined
而不是undefined
。
export default connect(undefined, MapDispatchToProps)(SearchBar);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.