Jam*_*ber 5 javascript reactjs graphql react-apollo react-adopt
我已经包装了Query和Mutations,所以我可以全局处理每个操作都需要进行的重复操作Query, Mutation。在查询中,我转换数据,所以我不必担心所有nodes, edges, etc
我正在使用react-adopt将所有组件query和mutations组件包装回视图层的一个渲染道具。
<ApolloQuery>export const ApolloQuery = ({
query: query,
render,
}) => {
return (
<Query query={query}>
{({ data }) => {
return (
<Fragment>
render(data)
</Fragment>
)
}}
</Query>
)
}
Run Code Online (Sandbox Code Playgroud)
export default externalProps => {
return (
<QueryContainer {...externalProps}>
{({ someQueryData, aMutation }) => { //react-adopt render props
const { nestedData } = new apolloClass(someQueryData).start()
return (
<Grid container spacing={16}>
{nestedData.map((ticket, index) => (
{...Mutation button in here}
))}
</Grid>
)
}}
</QueryContainer>
)
}
Run Code Online (Sandbox Code Playgroud)
<ApolloQuery> <Query query={query}>
{({ data }) => {
const transformedData = new apolloClass(data).start() //move transform into render
return (
<Fragment>
render(transformedData)
</Fragment>
)
}}
</Query>
Run Code Online (Sandbox Code Playgroud)
export default externalProps => {
return (
<QueryContainer {...externalProps}>
{({ someQueryData: { nestedData }, aMutation }) => {
return (
<Grid container spacing={16}>
{nestedData.map((ticket, index) => (
{...Mutation button in here}
))}
</Grid>
)
}}
</QueryContainer>
)
}
Run Code Online (Sandbox Code Playgroud)
因此,现在,如果我apolloClass在渲染之前将进行转换,该页面将不会在突变后更新query
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |