如何处理让用户知道I';我在等待来自Redux中DB的响应?
我想将数据发送到服务器并等待响应。为此,我希望我的Redux操作方法首先启动即时对象操作,使我的UI显示它正在等待,然后在服务器响应后启动thunk操作。我可以用单动作方法来完成吗?一般来说,这种情况的最佳做法是什么?我通常的处理方式是将状态设置为您的状态,如下所示:如何处理让用户知道I';我在等待来自Redux中DB的响应?,redux,redux-thunk,Redux,Redux Thunk,我想将数据发送到服务器并等待响应。为此,我希望我的Redux操作方法首先启动即时对象操作,使我的UI显示它正在等待,然后在服务器响应后启动thunk操作。我可以用单动作方法来完成吗?一般来说,这种情况的最佳做法是什么?我通常的处理方式是将状态设置为您的状态,如下所示: const initialState = { isPendingDBResponse: false, errorFromDB: "", data: [...] // any data sent back from th
const initialState = {
isPendingDBResponse: false,
errorFromDB: "",
data: [...] // any data sent back from the DB if it's needed
}
然后,无论您有什么组件,都只需使用三元运算符之类的东西来处理不同的状态:
import React from "react";
const MyComponent = ({ isPendingDBResponse, errorFromDB, data }) => (
<div>
{(isPendingDBResponse)
? <p>Waiting on DB...</p>
: (errorFromDB)
? <p>{errorFromDB}</p>
: <p>Everything was sent successfully</p> // Display any data here if needed
}
</div>
)
const mapStateToProps ({ reducerName }) => {
const { isPendingDBResponse, errorFromDB, data } = reducerName;
return {
isPendingDBResponse,
errorFromDB,
data
}
}
export default connect(mapStateToProps)(MyComponent);
从“React”导入React;
const MyComponent=({ispendingdbsresponse,errorFromDB,data})=>(
{(isPendingDBResponse)
正在等待数据库
:(errorFromDB)
?{errorFromDB}
:所有内容都已成功发送//如果需要,请在此处显示任何数据
}
)
常量MapStateTops({reducerName})=>{
const{ispendingdbsresponse,errorFromDB,data}=reducerName;
返回{
isPendingDBResponse,
errorFromDB,
数据
}
}
导出默认连接(MapStateTrops)(MyComponent);
Hmm,我的问题更多的是关于如何使用操作来实现这一点。我可以让一个名为submit
的操作同时设置标志并等待响应吗?@KarolSelak绝对可以!您可以使用redux thunk进行异步状态更新。我制作了一个名为的插件,它使异步redux状态更改的工作变得更加容易。正如我所提到的,我现在正在使用thunk。我只想同时做两件事:一是使用thunk,二是使用经典方式。