Как остановить перерисовку страницы при клике - PullRequest
0 голосов
/ 04 июня 2019

У меня есть таблица пользовательского интерфейса материала, которая заполняет записи при прокрутке с использованием датчика видимости реагирования и запроса React Apollo GraphQL. Когда я нажимаю на конкретную запись, она перерисовывает страницу, что приводит к разрыву прокрутки, и в таблице не отображаются записи. Можете ли вы помочь в устранении этой ошибки. Любая помощь приветствуется.

У меня есть метод onclick, который заполняет таблицу кликов.

onClick={() =>
        callBack({
          row: index,
          eventDetails: JSON.stringify(messageJson, null, 1),
        })
      }

Вот так я получаю больше записей и использую датчик видимости, чтобы заполнить их при прокрутке

{({ data, fetchMore }: QueryResult) => {
        return data.vitm_truck_message
          ? data.vitm_truck_message.map(
              (rowData: DataRowProps, index: number) => {
                const visibilitySensorKey = rowData.message_type.name
                  .concat(rowData.message_sub_type.name)
                  .concat(rowData.created_time);
                return containmentDOMRect ? (
                  <VisibilitySensor
                    key={visibilitySensorKey}
                    containment={containmentDOMRect.current || undefined}
                    scrollCheck
                    onChange={isVisible =>
                      isVisible && index % LOAD_SIZE === 0 && index >= LOAD_SIZE
                        ? fetchMore({
                            variables: {
                              offset: data.vitm_truck_message
                                ? data.vitm_truck_message.length
                                : offsetValue,
                            },
                            updateQuery: (
                              prev: any,
                              { fetchMoreResult }: any,
                            ) => {
                              if (
                                fetchMoreResult.vitm_truck_message.length !== 0
                              ) {
                                offsetValue = data.vitm_truck_message.length;
                                fetchMoreResult.vitm_truck_message.forEach(
                                  (element: object) => {
                                    data.vitm_truck_message.push(element);
                                  },
                                );
                              }
                              return prev;
                            },
                          })
                        : undefined
                    }
                  >
                    <DataRowComponent
                      {...rowData}
                      index={index}
                      selectedRow={selectedRow}
                      callBack={callBack}
                    />
                  </VisibilitySensor>
                ) : null;
              },
            )
          : null;
      }}

Пожалуйста, дайте мне знать, если вы хотите, чтобы я поделился любой другой информацией. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...