javascript - React-Redux 类型错误 : dispatch is not a function

标签 javascript reactjs redux react-redux

我正在尝试为我的 React TODO 应用程序创建一个搜索栏。

这是我的搜索栏类:

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

这是我的 reducer :

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 而不是它。

export default connect(undefined, MapDispatchToProps)(SearchBar);

关于javascript - React-Redux 类型错误 : dispatch is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141672/

相关文章:

javascript - React - 当输入更改时如何防止重新渲染所有输入字段

javascript - XSS黑名单/白名单

javascript - 如何在 React (async/await) 中创建一个原子进程?

reactjs - UseParams 刷新但 UseEffect 不起作用

reactjs - 在一个项目中使用 Bootstrap 和 Flexbox

javascript - redux-thunk 调度事件

javascript - 当我在我的文本框中输入故事时,它应该点击这个 api

javascript - 有一个工具可以跟踪网站正在加载的资源吗?

javascript - 向对象添加新属性

javascript - 如何将字符串转换为函数?