reactjs - Apollo 客户端和更新表单
问题描述
我想知道是否有人有一个使用 Apollo Client 和新的查询和变异组件的更新表单的好例子。通过更新我的意思是:
- 使用查询结果填充表单值
- 编辑输入时更新组件状态(或 apollo-link-state?)。
- 提交时更新状态(或 apollo-link-state?)
我现在正在努力解决它,我想知道构建它的最佳方法是什么。我应该使用 Apollo-link-state 来存储表单状态吗?如果没有,我找不到不使用查询 HOC 将查询组件中的道具映射到组件状态对象的方法。任何例子都会很棒!
谢谢!
解决方案
如果您的应用程序的其他部分不需要访问该状态,apollo-link-state
则可能是矫枉过正——常规的组件状态就可以了。只需像使用 HOC 时一样创建一个组件:
class MyComponent extends React.Component {
constructor (props) {
super(props)
this.state = {
fieldA = props.myQuery.fieldA
fieldB = props.myQuery.fieldB
}
render () {
// your form fields here
}
}
}
然后你可以这样做:
<Query>
{({data, loading})=>(
if (loading || error) return null
<MyComponent myQuery={data.myQuery}>
)}
</Query>
推荐阅读
- javascript - 无需重新加载即可更改页面的好习惯
- javascript - 使用 fetch-mock 测试 React Redux 异步操作 - “无法读取未定义的属性 'then'”
- css - 固定位置 div 中的垂直对齐
- git - 在 GitHub 上分叉现有 pod 并在 Swift 工作区中使用 fork - 步骤?
- batch-file - 将 CMD 日志保存到文件
- reactjs - 如何使用表单中的数据从 api 获取数据?
- mongodb - 如何从 MongoDB 的集合中提取选定的字段
- java - 使用 JSP 将 HashMap 发送到控制器
- dbeaver - 在 DBeaver 中,如何从两个不同的连接运行 SQL 联合查询..?
- jmeter - JMeter 无法使 GET HTTP 请求工作,在 PostMan 中工作正常