首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux Thunk : redux thunk没有发送一个操作

Redux Thunk : redux thunk没有发送一个操作
EN

Stack Overflow用户
提问于 2021-06-28 07:06:07
回答 1查看 105关注 0票数 1

我正在研究thunk,并试图找出如何实现api调用。它不起作用,所以我回到了最基本的。当我单击控制台中的butto时,显示分派不是一个函数。

我认为问题来自于应用中间件,因为当我注释掉它时,增量和递减按钮是working.What,我做错了吗?

代码语言:javascript
复制
const store = createStore(root,
  compose(
    applyMiddleware(fetch), window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()

  ))
代码语言:javascript
复制
const Counter = (props) => {
    console.log(props);
    return (
        <div>
            <h1>{props.count}</h1>
            <button onClick={props.increment}>+</button>
            <button onClick={props.decrement} >-</button>
            <button onClick={props.fetch} >Add</button>

        </div>
    );
}

const mapStateToProps = (state) => {

    return {
        count: state.CountReducer.count,
        // item: state.CountReducer.item
    }
}
const mapDispatchToProps = (dispatch) => {
    return {
        increment: bindActionCreators(increment, dispatch),
        decrement: bindActionCreators(decrement, dispatch),
        fetch: bindActionCreators(fetch, dispatch),


    }
}

这是雷声和减速机的代码

代码语言:javascript
复制
export const fetch = () => {
    return dispatch => {

        axios.get('https://jsonplaceholder.typicode.com/todos/1')
            .then(response => dispatch(add(response.data)))
    }

}
export const add = (answer) => (
    {
        type: "ADD_DATA",
        payload: answer
    }
)
代码语言:javascript
复制
const initialState = {
    count: 0,
    item: []


}

export function CountReducer(state = initialState, action) {
    console.log("reducer");
    console.log("state");
    switch (action.type) {
        case ADD_DATA:

            return {
                ...state,
                item: action.payload
            }
        case INCREMENT_COUNT:
            return {
                ...state,
                count: state.count + 1
            }



        case DECREMENT_COUNT:
            return {
                ...state,
                count: state.count - 1
            }
        case GET_FETCHED_POSTS:
            return {
                ...state,
                item: action.payload
            }
        default:
            return state

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-28 07:34:26

尝试使用此代码创建存储

代码语言:javascript
复制
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import reducer from './reducer';
const initialState = {};
const middleware = [thunk];

const composeEnhancers =
  typeof window === 'object' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__
    ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({})
    : compose;

const enhancer = composeEnhancers(applyMiddleware(...middleware));

const store = createStore(reducer, initialState, enhancer);

export default store;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68158963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档