使用 redux,当状态发生变化时,它会更新connect
使用mapStateToProps
. 但是,使用 Apollo 在执行突变时,任何使用相同数据的组件都会收到新的 props。
我理解这是预期的行为,因为 Apollo 不知道数据集是相同的。这是我所得到的一个例子:
const query = gql`query { me { username } }`
@graphql(query)
class Header extends React.Component {
render () {
return <h1>{this.props.data.me.username}</h1>
}
}
const mutation = gql`mutation updateAccount($username: String!) {
updateAccount(username: $username) {
me {
username
}
}
}`
@graphql(mutation)
class Edit extends React.Component {
render () {
# ...
}
onSubmit(e) {
e.preventDefault()
this.props.mutate({variables: {username: this.state.username})
}
}
该Header
组件渲染出username
,而 Edit 组件更新username
. Header
我想在更改时重新渲染username
。我不确定如何在不轮询查询的情况下执行此操作。