首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效钩子调用(redux-saga)

无效钩子调用(redux-saga)
EN

Stack Overflow用户
提问于 2022-06-07 11:23:11
回答 1查看 52关注 0票数 1
代码语言:javascript
复制
import { firestore as db } from "../../components/firebase/firebase";
import { getAuth } from "firebase/auth";
import { useSelector } from "react-redux";

export const save = async () => {
  const data = useSelector((state: any) => state.canvas.canvas);
  const auth: any = getAuth();
  await db.collection("images").add({
    user: auth.currentUser.displayName,
    data: data,
  });

  return data;
};

我有这个密码。在那里,我需要从redux存储中获取图像url,并将其保存到防火墙中,但是我收到了一个错误“无效的钩子调用。钩子只能在函数组件的主体内调用”。我怎么才能修好它?此代码是从saga调用的:

代码语言:javascript
复制
export function* imgWorker() {
  const Image: { img: string } = {
    img: "",
  };

  try {
    yield save().then((img) => {
      Image.img = img;
    });
    yield put(saveImgSucceed(Image.img));
  } catch (error) {
    console.log("imgSaga", error);
    yield put(saveImgFailed());
  }
}

export function* saveImg() {
  yield takeEvery(GET_IMAGE_DATA, imgWorker);
}
EN

回答 1

Stack Overflow用户

发布于 2022-08-28 11:18:38

代码语言:javascript
复制
import { firestore as db } from "../../components/firebase/firebase";
import { getAuth } from "firebase/auth";
import { useSelector } from "react-redux";
import { select, call, takeEvery, put } from "redux-saga/effects"

export const save = function* ()  {
  const data = yield select((state: any) => state.canvas.canvas);
  const auth: any = getAuth();
  
  return yield call(() => db.collection("images").add({
    user: auth.currentUser.displayName,
    data: data,
  }));
};

export function* imgWorker() {
  const Image: { img: string } = {
    img: "",
  };

  try {
    Image.img = yield call(save);
    yield put(saveImgSucceed(Image.img));
  } catch (error) {
    console.log("imgSaga", error);
    yield put(saveImgFailed());
  }
}

export function* saveImg() {
  yield takeEvery(GET_IMAGE_DATA, imgWorker);
}

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

https://stackoverflow.com/questions/72530338

复制
相关文章

相似问题

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