当前位置: 首页 > 面试题库 >

在react-apollo的Query组件中设置状态

范福
2023-03-14
问题内容

因此,我正在尝试为从服务器获取数据的编辑组件设置初始状态,现在应该可以在组件状态下对其进行编辑。但是当我尝试这样做时:

<Query query={POST_QUERY} variables={{ id: this.props.match.params.id }}>
    {({ data, loading, error }) => {
      this.setState({ title: data.title })

因为这是在渲染中,所以我陷入了无限循环。我不应该将组件状态与查询组件一起使用吗?如果没有,那还有什么选择呢?


问题答案:

无论哪个组件需要此数据作为状态,都应在Query组件内部进行渲染,然后将数据作为道具传递给它。例如:

class MyComponent extends React.Component {
  constructor (props) {
    this.state = {
      title: props.post.title
    }
  }
}

<Query query={POST_QUERY} variables={{ id: this.props.match.params.id }}>
  {({ data, loading, error }) => {
    <MyComponent post={data.post}/>
  }}
</Query>


 类似资料:
  • 假设我有以下名为Home的组件: 在PostForm组件与新Post一起提交后,我将如何更新主状态,或者如何从api重新获取数据。

  • 问题内容: 在React组件中,最好是在Constructor()或componentWillMount()中设置初始状态? 要么 问题答案: 使用ES6类时,最好在构造函数中使用,但不要使用API,而是这样做: 另外,如果您有可用的类属性(Bab期1),则可以执行以下操作:

  • 我目前在react native中有一个函数,它执行以下操作: 我运行上述命令,可以确认arrayId和title变量有效并包含数据。arrayId也不是“selectProduct”。我在调试时在那里添加了一个console.log,以确保它运行,事实上确实如此。我期望的行为是状态立即更新。 但是,所选下拉列表的状态不会更新。在this.setState更新之后添加:console.log(th

  • 我使用Apollo 2.0管理graphQL API调用,并处理react应用程序的全局状态。 我试图创建一个登录屏幕,用户在其中输入用户名和密码,这将发送到我的API进行身份验证,成功后,我想将isLoggedIn的全局状态设置为true。 到目前为止,我能够使用一个使用客户声明的突变来设置全局状态,因此它只与局部状态有关。我有另一个变种,它进行graphQL API调用,验证用户名/密码,然后

  • 我在react native中有一个搜索栏组件,它在父组件中导入, SearchBar子组件具有以下元素: 是否可以访问此子组件在其中导入的父组件中的状态?提前感谢你的帮助

  • 假设Component-TODOList需要以两种不同的方式显示TODO的列表,listview和gridview。假设我想保持两个视图作为不同的组件,那么最佳实践是什么- > 使用graphql查询创建TodoList组件,然后将查询结果传递给TODOListView和TODOGridView组件? 创建没有graphql查询的TodoList组件,然后在ToDoListView和TODOGri