【发布时间】:2021-02-02 12:20:07
【问题描述】:
我在我的 web-app 中使用 react 和 redux。所以我被卡住的场景是,单击按钮时,我正在调用我正在调用 API 的 redux 操作 js,然后在块中我已经编写了条件,如果这些通过,那么我需要重定向到差异页面但我不必只更改我需要呈现的不同组件的页面的 URL。我为此使用下面的代码,但似乎控制永远不会从操作中进入我的组件。
动作JS
export function fetchData(data) {
return function (dispatch) {
let request = apiRequest(data);
return fetchAPICall(request).then(resp => {
if( resp.data.id==1){
<OtherComp data={data} />
}
}).catch(error => {
throw error;
})
}
}
获取API调用js
export function fetchAPICall(body) {
return fetch(SomeURL {
headers: headerSchema,
method: "POST",
body: JSON.stringify(body)
})
.then(handleResponse)
.catch(handleError);
}
OtherComp 只是一个示例静态组件,控件根本不转到该组件。有人可以建议我哪里出错了吗?
【问题讨论】:
-
您想在
resp.data.id==1的条件下更改路线,对吗? -
@yahyaparvar 是的,但我不想更改 url,所以我猜浏览器历史推送将不起作用。
-
分配一个布尔变量,并在条件下使其为真/假,然后在要显示条件的组件处,检查布尔变量是否为真
-
我并没有完全理解您的建议,我已经在 if 条件中调用了该组件。但问题是它实际上并没有被调用。
-
我知道你想做什么,你不应该直接在操作中返回一个组件,而是你应该在减速器中分配一个变量,并在父组件中有条件地更改组件,这也是关于 @ 987654324@ 还有,我可以看看你的减速器和你调用动作的组件吗?我也可以知道你想要实现的概念吗?
OtherComp是加载指示器还是显示动作参数的组件?
标签: javascript reactjs redux react-redux