Terkait: #594
Di #594, ketika draf posting selesai disimpan, kami menyesuaikan URL browser saat ini untuk mencerminkan ID posting baru. Meskipun ini diperlukan dalam konteks layar editor khusus, ini mengurangi portabilitas editor karena perubahan URL ini tidak berlaku di luar konteks ini. Jika kita ingin mengizinkan inisialisasi editor di layar lain (misalnya front-end, Customizer), kita mungkin perlu menjelajahi opsi untuk menyuntikkan middleware khusus konteks. Ini bisa berfungsi sebagai pola ekstensibilitas umum untuk setiap efek samping dari perubahan keadaan.
Untuk contoh navigasi simpan pos, ini bisa terlihat seperti:
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 );
} );
Lihat juga:
middleware
)Lihat automattic/notifications-panel dan bagaimana kami melakukannya untuk berintegrasi dengan automattic/wp-calypso
tindakan default untuk mode iframe
omong-omong, itu bekerja dengan sangat baik
8 bulan telah berlalu dan kami masih membutuhkannya Kami memiliki refactoring utama dalam cara kami menangani data, tetapi middlewares masih memainkan peran penting. Kita bisa menjelajahi apakah perpustakaan kait akan cocok di sini. Kami mungkin menyuntikkan middlewares tambahan menggunakan filter di sini: https://github.com/WordPress/gutenberg/blob/master/editor/store/middlewares.js#L40. @youknowriad menyarankan untuk membuat API internal untuk memulai.
Ini digantikan oleh pola baru dengan modul data: Terutama subscribe
dan withSelect
API, yang memungkinkan pengembang untuk mengamati dan bereaksi terhadap perubahan dari waktu ke waktu: https://github.com/WordPress /gutenberg/blob/master/packages/data/README.md
Komentar yang paling membantu
Lihat automattic/notifications-panel dan bagaimana kami melakukannya untuk berintegrasi dengan automattic/wp-calypso
menyuntikkan enhancer
tindakan default untuk mode iframe
integrasi khusus di Calypso
omong-omong, itu bekerja dengan sangat baik