我发现自己处于React / Redux应用程序的情况下,我需要很多函数来转换数据,当它从服务器返回时使用像moment或jwtDecode这样的库 . 例如:
function mapDispatchToProps(dispatch) {
return {
getAllTokens: () => {
dispatch(getAllTokens());
}
};
}
在页面加载时,我运行 this.props.getAllTokens()
以从存储在数据库中的服务器返回所有令牌,我想在页面上显示(例如) .
调度使用Redux Thunk对数据执行某些操作并发送到商店:
export const getAllTokens = () => dispatch => {
apiGetAllUsers()
.then(tokens => {
let newFormat = tokens.message.map(token => {
if (token.refreshToken) {
let decoded = jwtDecode(token.refreshToken);
let expiresIn = moment.unix(decoded.exp).fromNow();
return {
refreshToken: token.refreshToken,
email: token.email,
expiresIn
};
}
});
dispatch(adminTokensReceived(newFormat));
})
};
此函数 getAllTokens
在另一个文件中,以帮助组件保持精简 . 这种方法适用于Redux,但是当涉及到使用Apollo时,如何在将数据添加回组件props之前更新数据?
我遇到了this link,它显示了如何从查询中更新数据,但是我没有错过一些基本的东西?
所以我的问题是,如上所述,使用辅助函数的最佳方法是什么?
谢谢