相关疑难解决方法(0)

如何使用graphQL在React / Apollo中设置setState()

我正在尝试将setState()设置为来自graphQL的查询结果,但是我很难找到如何执行此操作的方法,因为它将始终处于加载状态,或者仅从props中使用。我先设定状态

constructor (props) {
        super(props);
        this.state = { data: [] };
Run Code Online (Sandbox Code Playgroud)

然后我有这个查询

const AllParams = gql`
    query AllParamsQuery {
        params {
            id,
            param,
            input
        }
    }`
Run Code Online (Sandbox Code Playgroud)

当它回来时,我可以用 this.props.AllParamsQuery.params

我应该如何以及何时 this.setState({ data: this.props.AllParamsQuery.params }) 不返回 {data: undefined}

我还没有找到一种方法让它在undefinedAKA loading: true之后等待setState。我试着componentDidMount()componentWillReceiveProps()包括async function(){...await...}但没有成功,我可能做错了。有人知道如何正确执行此操作或有示例吗?

编辑+答案:您不应设置状态,而应将其留在道具中。检查此链接:“为什么在props.js中将props设置为state是亵渎神灵” http://johnnyji.me/react/2015/06/26/why-setting-props-as-state-in-react-is- blasphemy.html 更新道具还有很多问题,但可以在此应用程序创建教程中找到一些很好的示例:https : //www.howtographql.com/react-apollo/8-subscriptions/

reactjs graphql graphql-js react-apollo

5
推荐指数
2
解决办法
6544
查看次数

标签 统计

graphql ×1

graphql-js ×1

react-apollo ×1

reactjs ×1