МетаТэги React-шлема исчезают при смене страницы

Я сделал небольшое обучающее серверное приложение на основе ReactJS. Моя цель - поделиться динамическим постом на facebook с помощью React SSR, я создал приложение на основе холста, которое генерирует изображение, и я хочу установить динамические метатеги для публикации поста в FB.

вот мой пример кода gitRepo,

Я также сталкиваюсь с еще одной проблемой, когда я автоматически меняю страницу с помощью тега history.push или Redirect в Render, тогда Rect-шлем не устанавливает метатеги.


person Amit Shakya    schedule 07.02.2019    source источник
comment
Пожалуйста, предоставьте код, показывающий, где и как вы устанавливаете мета. Мы не хотим, чтобы вы слишком ползли по вашему репо в поисках этого.   -  person Dominic    schedule 07.02.2019
comment
@Dominic, я установил такие метатеги, как ‹Helmet title = Only4Laugh meta = {[{property: 'og: url', content: 'amit0shakyafbshare.herokuapp.com '}, {property:' og: type ', content:' website '}, {property:' og: title ', content:' Amit Post Title '}, {свойство: 'og: description', content: 'Amit Post Discription'}, {property: 'og: image', content: imagepath},]} / ›   -  person Amit Shakya    schedule 07.02.2019
comment
@Dominic, он работает правильно, когда я устанавливаю метатеги, но проблема в том, что когда я меняю страницу, метатеги являются Disapper из головы.   -  person Amit Shakya    schedule 07.02.2019


Ответы (2)


Похоже, вы как ни странно устанавливаете мета на одной странице (Project) после успешного запроса POST. Стоит ли удивляться, что его нет на других маршрутах? Шлем React вычисляет мета динамически из дерева реакции, как и любой код React, если он не существует в этот момент, он удаляется.

Если вы хотите делиться мета-данными между страницами, установите его выше, например App.js, который разделяют все маршруты.

Также вы устанавливаете его после saveImage запроса, не уверен, что эти метатеги будут полезны при установке в этот момент.

person Dominic    schedule 07.02.2019
comment
Да, на самом деле после сохранения изображения я успешно сгенерировал изображение и загрузил его, после чего мне нужно поделиться им с facebook.Что я сделал сначала, пользователь что-то нарисовал, затем щелкнул по сохранению изображения, затем он меняет заголовок с помощью метатегов, затем я хочу изменить страницу, которая Будет содержать метатеги в biggining, и поисковый робот facebook может легко прочитать эти метатеги. Так что может быть лучшим способом сделать это ... ??? - person Amit Shakya; 07.02.2019
comment
Если вы хотите сохранить эту логику в Project, вам следует сохранить данные для создания метаданных в магазине, например. redux store и что-то выше, например. App.js должен отвечать за создание кода рендеринга мета-кода шлема. - person Dominic; 07.02.2019
comment
Итак, saveImage - ›обновить хранилище с метаданными -› App.js будет повторно отрисован с мета-изменениями, и, поскольку он находится в глобальном хранилище, он также будет на других страницах. Я вижу, у вас еще нет глобального магазина, но он, вероятно, вам все равно понадобится для других функций. - person Dominic; 07.02.2019
comment
Я сталкиваюсь с еще одной вещью: когда мы добавляем метатеги с помощью response-шлема, он устанавливается после рендеринга страницы, поэтому я добавляю метатеги перед изменением страницы, поэтому я напрямую пытаюсь установить после сохранения изображения. - person Amit Shakya; 07.02.2019
comment
Я не смог найти ни одного рабочего образца с Dynamic share с ReactJS для facebook. Я не знаю, как этого добиться ... - person Amit Shakya; 07.02.2019
comment
Наконец, я использую react-meta-tags вместо response-шлема, это помогает мне исправить это. - person Amit Shakya; 07.02.2019

Наконец, я использую react-meta-tags вместо response-шлема, это помогает мне исправить эту проблему.

person Amit Shakya    schedule 07.02.2019