相关:#594
在 #594 中,当帖子草稿完成保存时,我们调整当前浏览器 URL 以反映新的帖子 ID。 虽然这在专用编辑器屏幕的上下文中是必要的,但这会降低编辑器的可移植性,因为这些 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 );
} );
也可以看看:
middleware
)8 个月过去了,我们仍然需要它😃 我们对处理数据的方式进行了重大重构,但中间件仍然发挥着重要作用。 我们可以探索 hooks 库是否适合这里。 我们可能会在这里使用过滤器注入额外的中间件: https : @youknowriad建议在开始时使用内部 API。
这被带有数据模块的新模式所取代:特别是subscribe
和withSelect
API,它们允许开发人员观察并响应随时间的变化: https :
最有用的评论
查看自动/通知面板以及我们如何执行此操作以与自动/wp-calypso 集成
注射增强剂
iframe 模式的默认操作
Calypso 中的自定义集成
顺便说一下,它运行得非常好