Javascript redux传奇中的select存在问题。错误:调用:{context,fn}类型的参数具有未定义或null`fn`

Javascript redux传奇中的select存在问题。错误:调用:{context,fn}类型的参数具有未定义或null`fn`,javascript,select,redux,redux-saga,Javascript,Select,Redux,Redux Saga,在这里查看了一些类似问题的答案后,我就是无法让我的选择器工作。这是我的selector.js: export const getButtonStatus = state => state.buttonStatus; (这就是文件的全部内容。我不知道是否需要将任何内容导入其中。从我在这里看到的其他答案来看,我似乎不喜欢它。) 以下是我在我的传奇故事中尝试访问选择器的地方: import { takeLatest, call, put, select } from "redux-saga/e

在这里查看了一些类似问题的答案后,我就是无法让我的选择器工作。这是我的selector.js:

export const getButtonStatus = state => state.buttonStatus;
(这就是文件的全部内容。我不知道是否需要将任何内容导入其中。从我在这里看到的其他答案来看,我似乎不喜欢它。)

以下是我在我的传奇故事中尝试访问选择器的地方:

import { takeLatest, call, put, select } from "redux-saga/effects";
import { getButtonStatus } from "./selector.js";
...
export function* watcherSaga() {
  yield takeLatest("get-tweets", workerSaga);
}

function* workerSaga() {
  try {
    const buttonStatus = yield select(getButtonStatus);
    const response = yield call(getTweets(buttonStatus));
    const tweets = response.tweets;
    yield put({
      type: "tweets-received-async",
      tweets: tweets,
      nextTweeter: response.nextTweeter
    });
  } catch (error) {
    console.log("error = ", error);
    yield put({ type: "error", error });
  }
}
...
以下是我收到的错误:

 Error: call: argument of type {context, fn} has undefined or null `fn`

我是新来的传奇人物。有人能告诉我我做错了什么吗?

错误不在于选择器,而在于
yield调用
-它将函数作为参数,后跟传递给函数的参数:。因此,它应该是:

const response=yield调用(getTweets,buttonStatus)


否则看起来不错

对于未来的求职者,您可能正在这样做:

const foo = yield call(bar())
因此,您不传递函数本身,而是传递函数调用

修理 尝试只发送函数,而不发送其调用

const foo = yield call(bar)

非常感谢你!成功了,是的!它起作用了!谢谢