gpt4 book ai didi

reactjs - RelayContainer : Expected prop `%s` to be supplied to `%s` , 但 ' + ' 得到 `undefined` 。如果这是故意的,则传递显式的 `null`

转载 作者:行者123 更新时间:2023-12-03 13:20:27 24 4
gpt4 key购买 nike

我尝试使用 React、Relay 和 GraphQL 实现一些东西,但我遇到了一个我不理解的问题,并且无法找到解决方案。

首先,我创建了一个 RootQuery 并有一个组件,它运行良好。现在我创建了一个带有自己的片段的子组件,但出现此错误:

relay.js:1799 Warning: RelayContainer: Expected prop room to be supplied to RoomList, but got undefined. Pass an explicit null if this is intentional.

在网络请求中,我看到了所有请求的数据。

这是一些代码:

根查询

const RoomQuery = {
room: (Component) => Relay.QL`
query {
room {
${Component.getFragment('room')},
}
}
`
};

路线

<Route name="rooms" path="/rooms" component={Rooms} onEnter={requireAuth} queries={RoomQuery}/>

中继容器

export default Relay.createContainer(Rooms, {
fragments: {
room: () => Relay.QL`
fragment on Room {
title,
description,
publicKeys,
takenKeys,
image_filename,
subRoomsCount,
owner {
fullName
},
${RoomList.getFragment('room')},
}
`,
}
});

中继子容器

export default Relay.createContainer(RoomList, {
fragments: {
room: () => Relay.QL`
fragment on Room {
subRooms{
title,
description,
publicKeys,
takenKeys,
image_filename,
availableKeys,
owner {
fullName
},
subRoomsCount
}
}
`,
}
});

在我的 React 组件中,我使用这个子 React 组件,如下所示:

<RoomList></RoomList>

不知道是不是我理解错了,我以为Relay会加载Data并将其填充到this.props中,但是只有一个relay对象。

感谢您的帮助:)

问候

罗尼·格恩特

最佳答案

好的,我找到了解决问题的方法。我只是需要改变

<RoomList></RoomList>   

<RoomList room={this.props.room}></RoomList>

Relay 给了我正确的已填充子房间列表。

我希望其他人会发现这很有用;)

关于reactjs - RelayContainer : Expected prop `%s` to be supplied to `%s` , 但 ' + ' 得到 `undefined` 。如果这是故意的,则传递显式的 `null`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com