【发布时间】:2019-06-30 11:23:21
【问题描述】:
我使用 ApolloProvider 作为 HOC 从服务器获取数据,并使用 Query 从 'react-apollo' 在页面和组件中呈现数据。
这是一个问题。 <Query /> 将数据直接呈现给 <input /> 等元素,而不使用组件的状态。但是如果我想用onChange() 函数更改<input /> 值怎么办,我在哪里存储新值?
是否可以使用 Apollo 获取 componentDidMount() 中的数据,保存然后传递给 render()?
这是我的虚拟代码,仅作为示例:
const USER = id => gql`
{
user(id: "${id}") {
_id
name
surname
email
}
}
`;
render() {
const { id } = this.props;
return (
<Query query={USER(id)}>
{({ loading, error, data }) => {
if (loading) return <p>Loading...</p>;
if (error) return <p>Error:(</p>;
const { user } = data;
return (
<div>
<input type="text" value={user.name} />
<input type="text" value={user.surname} />
<input type="text" value={user.email} />
</div>
);
}}
</Query>
);
}
我想在这些输入中添加onChange() 函数,然后进行 GraphQL 突变
【问题讨论】:
标签: javascript reactjs graphql