【发布时间】:2018-08-04 21:51:26
【问题描述】:
我有从 MongoDB 集合中查询值的 Apollo 客户端,然后我尝试从“findOne”中获取值。当我尝试获取值时(例如“eventname”,它会提醒“无法读取未定义的属性'eventname'”。
这是架构和解析器。
type Event {
_id: ID!
eventname: String!
remark: String
username: String
createdAt: Date
updatedAt: Date
registers: [Register]
}
type Query {
eventList(_id: ID): Event
}
eventList: async(parents, args, { Event }) => {
const eventList = Event.findOne({ _id: args._id });
if (!eventList) {
throw new Error('No such event found');
}
return eventList;
},
来自客户端的查询:
class RegistersIndex extends Component {
render() {
const { data: {loading, error, eventList}, match } = this.props;
console.log(eventList.eventname);
...
...
export const eventsListQuery = gql`
query EventsListQuery ($eventid: ID!) {
eventList (_id: $eventid) {
_id
eventname
remark
username
createdAt
updatedAt
}
}
`;
export default graphql(eventsListQuery, {
options: (props) => ({
variables: { eventid: props.match.params._eventid },
})
})(RegistersIndex);
【问题讨论】:
-
你测试过 ``` console.log(data.eventList.eventname); ``` ?
-
请发布您的 GraphQL 端点配置
-
also.. 而
data.loading是true,data.eventList预计是未定义的。 -
太棒了!!!!!!非常感谢大家。!!!!!!