Relay-Modern 尝试更新已卸载的组件“Relay(Songs)”
Relay-Modern Attempted to update component `Relay(Songs)` that has already been unmounted
我正在使用 found-relay 进行路由。
如果我不使用片段而只是在查询中指定名称,那么它就可以正常工作。
我做错了什么?
songsContainer.js:
import Songs from './component';
export const query = graphql`
query songsContainerQuery {
songs {
...songsContainer_songs
}
}
`;
export default createFragmentContainer(Songs, graphql`
fragment songsContainer_songs on Song {
name
}`,
);
component.js:
const Songs = ({ songs }) => (
<Audios
audios={songs}
>
<Song />
</Audios>
);
export default Songs;
routeConfig.js:
import Songs, { query as songsQuery } from '../../songs/songsContainer';
export default makeRouteConfig(
<Route path="/">
<Route Component={PrimaryLayout}>
<Route exact path="/" Component={Songs} query={songsQuery} />
</Route>
</Route>,
);
我们需要添加一个 plural
指令,否则您会收到此错误:
graphql`
fragment songsContainer_songs on Song @relay(plural: true) {
name
}`
糟糕的错误消息,我将在中继上为糟糕的错误消息创建一个问题。
我正在使用 found-relay 进行路由。
如果我不使用片段而只是在查询中指定名称,那么它就可以正常工作。
我做错了什么?
songsContainer.js:
import Songs from './component';
export const query = graphql`
query songsContainerQuery {
songs {
...songsContainer_songs
}
}
`;
export default createFragmentContainer(Songs, graphql`
fragment songsContainer_songs on Song {
name
}`,
);
component.js:
const Songs = ({ songs }) => (
<Audios
audios={songs}
>
<Song />
</Audios>
);
export default Songs;
routeConfig.js:
import Songs, { query as songsQuery } from '../../songs/songsContainer';
export default makeRouteConfig(
<Route path="/">
<Route Component={PrimaryLayout}>
<Route exact path="/" Component={Songs} query={songsQuery} />
</Route>
</Route>,
);
我们需要添加一个 plural
指令,否则您会收到此错误:
graphql`
fragment songsContainer_songs on Song @relay(plural: true) {
name
}`
糟糕的错误消息,我将在中继上为糟糕的错误消息创建一个问题。