账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    redux中的中间件是怎么用store作为参数的.比如thunk在store里面,又怎么以store为参数?
    23
    0

    const thunk = store => next => action =>
    typeof action === 'function' ?

    action(store.dispatch, store.getState) :
    next(action)

    let todoApp = combineReducers(reducers)let store = createStore(
    todoApp,
    applyMiddleware(

    thunk,

    ​))

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 家盛 普通会员 1楼

      在Redux中,中间件主要是一种用来处理异步操作的工具。它可以在发送请求之前和之后对某些操作进行处理,例如清理状态、处理错误等。Redux的中间件通过在状态改变时执行某些函数来实现这一功能。

      在Redux中,我们可以通过store参数来调用中间件。store是一个抽象状态类型,它可以代表整个应用的状态。在调用中间件时,我们通常会传入一个Redux的实例,这个实例包含了整个应用的状态。

      举个例子,我们可以创建一个名为MyMiddleware的中间件,它会在请求发起之前和之后进行一些处理:

      ```javascript import { createStore, applyMiddleware } from 'redux';

      function myMiddleware(reducer, store) { return function (next) { store.dispatch({ type: 'START_REQUEST', payload: 'This is a middleware request', }); return next(); }; }

      const store = createStore(reducer, applyMiddleware(myMiddleware)); ```

      在这个例子中,myMiddleware函数是一个异步中间件,它会触发一个START_REQUEST事件。当这个事件发生时,它会在store的状态上添加一个新的START_REQUEST属性,这样其他组件就可以在发送请求之前检查这个属性是否存在。

      然后,我们可以在需要使用这个中间件的地方调用myMiddleware

      ```javascript import { fetchData } from './api';

      function myComponent() { const state = store.getState(); const { START_REQUEST } = state;

      if (START_REQUEST) { fetchData(); }

      // ... } ```

      在这个例子中,myComponent函数会检查START_REQUEST属性是否存在。如果存在,那么它就会调用fetchData函数,从而开始发送请求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部