Обновление магазина Apollo после запроса (не мутация) - PullRequest
0 голосов
/ 23 мая 2018

Я хочу обновить магазин после запроса (с помощью компонента Query).Аналогично свойству update компонента Mutation.Компонент Query не имеет реквизита «update».Я использовал client.writeData (...), но по какой-то причине сохраненное значение пусто.

В следующем коде реквизиты Lanes отображаются правильно, но когда я пытаюсь получить доступ к значению processChangeRequests из локального хранилища, оно пустое.

Dashboard.js

<Query
                            query={GET_ITEMS({  uid: user.uid })}>
                            {({ loading, data: { GetProcessChangeRequests, processChangeRequests }, data, client }) => {    
                                if (loading) return <Segment>  <Icon loading name='spinner' /> Loading items ....</Segment>
                                if (!loading){
                                    client.writeData({ data: { processChangeRequests: Object.assign([], GetProcessChangeRequests)  } })          
                                    return (
                                    <Container>
                                        <div>
                                            { ITEM_TITLE_DICTIONARY[visibilityFilter] }
                                        </div>
                                        <Divider />
                                        <Lanes                                                  
                                                user={user}
                                                visibilityFilter={visibilityFilter}

                                        {...this.props} />                                        

                                    </Container>)
                                }
                            }}
                        </Query>

Lanes.js

<Query

            query={gql(QUERY_DICTIONARY[visibilityFilter])}>
            {({ data, client }) => {

                return (<div>

                    {
                        JSON.stringify(data.processChangeRequests)
                    }


                </div>)

            }}
        </Query>

гкл (QUERY_DICTIONARY [visibilityFilter]):

`{
processChangeRequests @client {
     summary,
        type,
        created_by,
        created_date,
        modified_by,
        modified_date,
        status,
        projekt,
        assigned_user_overall_responsibility,
        assigned_user_status_im_workflow,
        planned_target_date,           
        description,
        implicated,             
        live_item_id,             
        related_process,             
        to_do,             
        priority,             
        scope
}

} `

1 Ответ

0 голосов
/ 24 мая 2018

Если вам действительно нужно обновить магазин после запроса, это путь.

Как вы можете видеть здесь .

Что я хотел бы предложить, чтобы вы не извлекали свойство data из query result дважды.Я думаю, что это проблема.

Если вы попробуете это таким образом, вы должны получить запрашиваемые данные

{
  ({ loading, data, client }) => {

    ...

    if (!loading) {
      const {
        GetProcessChangeRequests,
        processChangeRequests
      } = data;
      
      client.writeData({
          data: { processChangeRequests: Object.assign([], GetProcessChangeRequests)}
      })

      ...

    }
  }

Но я не понимаю, что вы хотите попробовать.

...