reactを使用して、サーバーサイドレンダリングのサンプルページを作成します。renderToString()同形反応WebアプリケーションでUIが変更されたときにHTMLマークアップが変更されない
これは私のページは、最初は静的であり、ユーザが入力を入力したとき、それはバックエンドからデータを取得し、一覧をレンダリングし、検索ページで私のserver.jsコード
app.get('*', (req, res) => {
match(
{ routes, location: req.url },
(err, redirectLocation, renderProps) => {
// in case of error display the error message
if (err) {
return res.status(500).send(err.message);
}
// generate the React markup for the current route
let markup;
if (renderProps) {
markup = renderToString(<RouterContext{...renderProps}/>);
} else {
res.status(404);
}
// render the index template with the embedded React markup
return res.render('index', { markup });
}
);
});
です同じページ内のコンポーネント
ブラウザでビューページのソースを見ると、バックエンドの応答後にレンダリングされるリストのhtmlではなく、最初の静的コンテンツのみが表示されます。
コンポーネント状態が変更されたときに更新されたHTMLを取得する正しい方法は何ですか。
私は時に状態が変化するコンポーネントが描画されますことを知っています。しかし、私の問題は、HTMLのマークアップは変更されないということです。 – John
新しいデータで何をレンダリングしますか?検索文字列からの結果のリスト?それとも問題じゃない? –
はい。結果のリスト。それはレンダリングされています。レンダリングに問題はありません。ビューのページソースに問題があります.HTMLのコンテンツをチェックすると、SEOの目的で新しい要素が追加されません。 SEO – John