gpt4 book ai didi

reactjs - Redux:API 成功响应后打开外部 url

转载 作者:行者123 更新时间:2023-12-03 13:34:07 26 4
gpt4 key购买 nike

我想在收到带有生成的 url 的 api 的成功响应后打开一个 url。我正在尝试在 reducer 内打开该网址,如下所示:

window.open(url, '_blank');

这似乎对大多数浏览器都工作正常,但在 safari 中不兼容。

知道如何实现跨浏览器兼容吗?有没有办法用react-router-redux来做到这一点?

谢谢!

更新:我需要打开一个外部网址,而不是项目中的路由,所以 react 路由器可能不是解决方案

最佳答案

根据官方 redux 文档,在 reducer 中你不应该:

  • 改变它的参数;
  • 执行 API 调用和路由等副作用转换
  • 调用非纯函数,例如Date.now() 或Math.random()。

如果您使用 redux-thunk 中间件发出 api 请求,最好在那里执行重定向。

例如:

// actions.js

function asyncApiCall() {
return function (dispatch) {
return fetch('/api')
.then(response => response.json().then(body => ({ response, body })))
.then(({ response, body }) => {
if (response.ok) {
window.open(url, '_blank');
}
});
};
}

关于reactjs - Redux:API 成功响应后打开外部 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38143367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com