0

我试图获得UserProjects. 这是我的models/user.js

 *fetchUser({ payload, callback }, { call, put }) {
      const user = yield call(queryUser, payload);
      yield put({
        type: 'setCurrentUser',
        payload: user,
      });
      if (callback) callback();
    },

最佳做法是什么?我应该在哪里调用该函数queryProjects?也许在这条线以下?

const user = yield call(queryUser, payload);
const projects = yield call(queryProjects, user); // new api call
4

1 回答 1

0

第一种方法

制作两个模型,users&projects

然后你可以这样做

*fetchUser({ payload, callback }, { call, put }) {
      const user = yield call(queryUser, payload);
      yield put({
        type: 'setCurrentUser',
        payload: user,
      });
      yield put({type: 'projects/fetchByUserId', payload: user.id});
    },

Inside your `projects` model.

*fetchByUserId({payload){
    // do ajax call
}

获得项目数据后,您可以使用用户 ID 过滤项目数组(考虑到您的项目有类似的内容project.user_id)并将它们显示到应用程序中。

第二种方法

您可以让后端服务器在用户对象中为用户发送项目列表。

{
    id: 1,
    username: "foo",
    projects: [
        {id: 1},
        {id: 2}
        {id: 3}
    ]
}

我希望这是有道理的。

于 2018-10-22T19:16:39.953 回答