如何在Apollo GraphQL

时间:2018-02-02 12:04:05

标签: reactjs redux apollo react-apollo

我发现自己处于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时,如何在将数据添加回组件道具之前更新数据?

我遇到了this link,其中展示了如何从查询中更新数据,但我没有看到很多使用它的示例,所以我想知道我是否遗漏了一些基本的东西?

所以我的问题是,如上所述,使用辅助函数的最佳方法是什么?

由于

0 个答案:

没有答案