微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Plaid Link:成功切换事件后触发 onExit 回调错误

如何解决React Plaid Link:成功切换事件后触发 onExit 回调错误

我目前收到来自 onExit 回调的错误消息,指出在触发 onSucess 回调后需要凭据才能将项目链接到 Plaid。 onSuccess 函数在提交时成功命中我的端点并在触发时连接帐户,但 onExit 函数总是在之后执行。我需要弄清楚为什么当一切似乎都按预期工作时我会收到错误消息。我猜我遗漏了一些东西,所以任何帮助将不胜感激!

  const connectAccount = (account: any) => {
    return useApi('/v1/expense/payments/accounts/connect','POST',account).then((response) => {
      if(response) {
        getAccounts(0,2).then(() => {
          if(account.length !== 0) {
            getActiveView('LIST');
          } else {
            getActiveView('LOADER');
          }
          return response;
        });
      };
      return response;
    });
  };

  const onSuccess = useCallback(
    (public_token,Metadata) => {
      connectAccount({
        accounts: [
          {
            id: Metadata.account.id,mask: Metadata.account.mask,name: Metadata.account.name,},],institutionId: Metadata.institution.institution_id,institutionName: Metadata.institution.name,publicToken: Metadata.public_token,});
    },[],);

  const onExit = useCallback(
    (error,Metadata) => {
      console.log(error,Metadata);
    },);

  const config: PlaidLinkOptions = {
    token,onSuccess,onExit,};

  const { open,ready } = usePlaidLink(config);

  return (
    <>
      {ready ? open() : null}
    </>
  );
};

export const Link = (props: Props) => {
  const [token,setToken] = useState<string | null>(null);

  const getAccountLink = () => {
    return useApi('/v1/expense/payments/accounts/link').then((response) => {
      if (response && response.linkToken) {
        setToken(response.linkToken);
      } else {
        return;
      };
    });
  };

  // generate a link_token
  useEffect(() => {
    getAccountLink();
  },[]);

  // initialize Link modal
  return token === null ? (
    <Loader />
  ) : (
    <PlaidLink
      token={token}
      getActiveView={props.getActiveView}
      getAccounts={props.getAccounts}
    />
  );
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。