Планируемый запуск: | 29.11.2018 | Дата начала: | Планируемое завершение: | Дата завершения: |
{"blocks": [{"key": "fo61i", "data": {}, "text": "Если находишься на странице (и данные по ней подгрузились), после заходишь на другую страницу, по подписке прилетел объект и на этой странице данные обновились, возвращаясь на предыдущую страницу, часто возникает так, что данных обновленных на ней нет.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "7d6a7", "data": {}, "text": "Как костыль сейчас можно добавить принудительную подгружку на componentDidMount() в компонент страницы.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "1rp0j", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "48r77", "data": {}, "text": "UPD: Сейчас этого нельзя сделать на уровне страницы, так как нет точек входа на механизм подгрузки данных, то есть не ясно требуется сейчас подгрузка или нет. Получается сделать только на уровне конечного компонента вот таким кодом: ", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": [{"style": "BOLD", "length": 4, "offset": 0}]}, {"key": "a96h1", "data": {}, "text": " ", "type": "atomic", "depth": 0, "entityRanges": [{"key": 0, "length": 1, "offset": 0}], "inlineStyleRanges": []}, {"key": "t07l", "data": {}, "text": "Здесь после монтирования компонента идет проверка на то, происходит ли сейчас подгрузка данных или нет. Если это первое монтирование компонента, то будет выполняться подгрузка сама собой. Если повторное и данные уже есть, то подгрузки не будет выполняться, поэтому проверяем на наличие метода переподгрузки и выполняем его.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "6i06h", "data": {}, "text": "Плюс метода такого в том, что работает на уровне каждого в отдельности метода и не вызывает подгрузки того, чего не требуется. Минус в том, что придется прописывать на уровне каждого компонента в отдельности. Надо будет запилить в ядро @prisma-cms/component", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "a9fun", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}], "entityMap": {"0": {"data": {"lang": "javascript", "content": "async componentDidMount() {\n\n const {\n data,\n } = this.props;\n\n if (data && !data.loading) {\n await data.refetch && data.refetch();\n }\n\n super.componentDidMount && super.componentDidMount();\n}\n"}, "type": "TOKEN", "mutability": "IMMUTABLE"}}}