Next.js: لا يتم عرض الخادم بشكل صحيح عند استخدام "seriouslySetInnerHTML"

تم إنشاؤها على ٥ نوفمبر ٢٠١٦  ·  3تعليقات  ·  مصدر: vercel/next.js

خلفية

أنا أستخدم Prismic.io كنظام إدارة getInitialProps() . المحتوى منسق مسبقًا بتنسيق HTML لذا فأنا أستخدم dangerouslySetInnerHTML .

سلوك متوقع

الناتج render() متطابق عند تنفيذه على الخادم والعميل.

السلوك الفعلي

ناتج render() على الخادم خاطئ ولا يتطابق مع العميل.

التقديم من الخادم:

image

تقديم من العميل

image

الاختلاف هو أن المحتوى لا يحتوي على النمط المناسب على الخادم لأن عُقد DOM غير متداخلة بشكل صحيح.

DOM من الخادم:

image

DOM من العميل:

image

الكود ذو الصلة

const htmlFor = (type) => ({__html: this.props[type]})
<Article heading="Devotional" html={true} >
   {htmlFor('devotional')}
</Article>

و

const Article = ({heading, children, date, link, style, html}) => (
  <article
    className="mv3 mv4-m mv5-l measure"
    style={style}
  >
    <header>
      <h1 className="f3 f2-ns mt0 lh-title i garamond bb bw3 b--gold">
        {heading}
      </h1>
    </header>
    { html
      ? <p className="lh-copy" dangerouslySetInnerHTML={children} />
      : <p className="lh-copy" >{children}</p>
    }

    <footer>
      { date
        ? <p className="f6 i">{date}</p>
        : null
      }
      {link
        ? <a href="#" className='link dim mid-gray bb b--gold'>
            {link}
          </a>
        : null
      }
    </footer>
  </article>
)

مزيد من المعلومات

هذا النشر و /_src متاحان للجميع هنا: https://thefaithnet-ynikfpghwu.now.sh/

التعليق الأكثر فائدة

flybayer شكرا على الإبلاغ. قد أكون مخطئًا ولكن تمرير sith عبر مدقق HTML يعطيني هذا الخطأ في HTML المتداخلة علامات p غير صالحة. هل يمكنك محاولة استخدام div بدلاً من p الخارجي؟

ال 3 كومينتر

flybayer شكرا على الإبلاغ. قد أكون مخطئًا ولكن تمرير sith عبر مدقق HTML يعطيني هذا الخطأ في HTML المتداخلة علامات p غير صالحة. هل يمكنك محاولة استخدام div بدلاً من p الخارجي؟

impronunciable نجاح باهر ، هذا كان!

تمسك جيد ، وشكرا جزيلا على مساعدتك!

سعيد أنها عملت!

في الأحد ، 6 نوفمبر 2016 ، الساعة 11:57 صباحًا براندون باير [email protected]
كتب:

impronunciable https://github.com/impronunciable نجاح باهر ، كان هذا كل شيء!

تمسك جيد ، وشكرا جزيلا على مساعدتك!

-
أنت تتلقى هذا لأنه تم ذكرك.

قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/zeit/next.js/issues/213#issuecomment -258693902 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/AAKHp5EvRuw2GOjOViKL0MjKr0Vrt65sks5q7gbtgaJpZM4KqaPT
.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات