我有一个名为GET_ME
的查询和另一个名为GET_USER_NOTIFICATIONS
的查询。第二个它正在寻找来自第一个查询的用户ID。我的问题是有时我会收到[TypeError: undefined is not an object (evaluating 'o.props.getMe.me._id')]
这是我的代码:
export default compose(
withApollo,
graphql(GET_ME, { name: "getMe" }),
graphql(GET_USER_NOTIFICATIONS, {
name: "notification",
skip: props => !props.getMe || !props.getMe.me,
options: props => ({
variables: { r_id: props.getMe.me._id }
})
})
)(Notifications);
有帮助吗?
答案 0 :(得分:0)
您可以尝试做吗:
variables: { r_id: props.getMe && props.getMe.me ? props.getMe.me._id : null }
// I use "null" in case the object doesn't exists.
// You can use value that your graphql needs.
(为简单起见,您也可以使用lodash _.get(...)
)
该错误表明,尽管您已将查询设置为跳过,但它正在执行变量分配。但是在分配时,getMe
或getMe.me
都是“未定义的”。
如果这样做没有帮助,则可以在render方法内使用 Render props Apollo组件。这样,您可以保证无法访问getMe.me._id
才能设置变量。