関連:#594
#594では、投稿の下書きの保存が完了すると、新しい投稿IDを反映するように現在のブラウザのURLを調整します。 これは専用のエディター画面のコンテキストで必要ですが、これらのURLの変更はこのコンテキスト外では適用されないため、エディターの移植性が低下します。 他の画面(フロントエンド、カスタマイザーなど)でエディターを初期化できるようにする場合は、コンテキスト固有のミドルウェアを挿入するためのオプションを検討する必要があります。 これは、状態変化の副作用の一般的な拡張パターンとして機能する可能性があります。
保存後のナビゲーションの例では、次のようになります。
wp.editor.injectMiddleware( ( store ) => ( next ) => ( action ) => {
const { type, isNew, post } = action;
if ( 'REQUEST_POST_UPDATE_SUCCESS' === type ) {
const [ baseUrl, query ] = window.location.href.split( '?' );
const qs = parse( query || '' );
const newUrl = baseUrl + '?' + stringify( {
...qs,
post_id: newPost.id,
} );
window.history.replaceState( {}, 'Post ' + newPost.id, newUrl );
}
return next( action );
} );
参照:
automattic / notifications-panelとこれをautomatic / wp-calypsoと統合する方法を確認してください
ちなみに、それは信じられないほどうまく機能しています
8か月経ちましたが、まだ必要です😃データの処理方法に大幅なリファクタリングがありましたが、ミドルウェアは依然として重要な役割を果たしています。 ここでは、フックライブラリが適しているかどうかを調べることができます。 https://github.com/WordPress/gutenberg/blob/master/editor/store/middlewares.js#L40で、フィルターを使用して追加のミドルウェアを挿入する場合があり@youknowriadは、開始のために内部APIを作成することを提案しました。
これは、データモジュールの新しいパターンに取って代わられます。特にsubscribe
およびwithSelect
APIは、開発者が時間の経過に伴う変化を観察して対応できるようにします: //github.com/WordPress /gutenberg/blob/master/packages/data/README.md
最も参考になるコメント
automattic / notifications-panelとこれをautomatic / wp-calypsoと統合する方法を確認してください
エンハンサーを注入する
iframeモードのデフォルトのアクション
カリプソのカスタム統合
ちなみに、それは信じられないほどうまく機能しています