私はMithril.jsを使用して1つのページアプリケーションとして自分のウェブサイト/ブログを作成しています。私のウェブサイトのすべてのページとブログの投稿は、Page
とPost
の要素を使ってレンダリングされ、正しいページはURLの:slug
に基づいて読み込まれます。ルートが変更されたときにミスリルのコンポーネントが更新されない
私が持っている問題はです。ページ間で切り替えようとするたびに、は更新されません。 Page
とPost
コンポーネントを交互に使用しているため、ページと投稿を切り替えると機能します。しかし、同じコンポーネントを2回連続して使用しようとすると、ページからページに移動すると、Webページは更新されません。ここ
m.route(document.body, '/', {
// `Home` is a wrapper around `Page`
// so I can route to `/` instead of `/home`
'/': Home,
'/:slug': Page,
'/blog/:slug': Post
});
const Home = {
view() {
return m(Page, { slug: 'home' });
}
};
Page
成分(Post
成分は非常に類似している)です。両方のコンポーネントが正しくレンダリングされます。
const Page = {
content: {},
oninit(vnode) {
m.request({
method: 'GET',
url: 'content.json',
}).then((response) => {
Page.content = response.pages[vnode.attrs.slug];
});
},
view() {
if (Page.content) {
return [
m('#content', m.trust(Page.content.body))
];
}
}
};
スズメルが変更されたことをミスリルが認識しないのはなぜですか?
ありがとう!私はちょうどc ':slug'を ':key'に吊り下げ、今は動作します! :) – evanrelf