2017-10-15 32 views
0

我正在使用found-relay进行路由。Relay-Modern试图更新已经卸载的组件`Relay(Songs)`

如果我不使用片段,只需在查询中指定名称,那么它工作正常。

我在做什么错?

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>, 
); 

回答

0

我们需要添加一个plural指令,或收到此错误:

graphql` 
    fragment songsContainer_songs on Song @relay(plural: true) { 
    name 
}` 

可怕的错误消息,我会为可怜的错误消息中继创建一个问题。