Gutenberg: 将状态中间件注入视为可扩展性机制

创建于 2017-05-06  ·  3评论  ·  资料来源: WordPress/gutenberg

相关:#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 );
} );

也可以看看:

Framework [Feature] Extensibility [Type] Question

最有用的评论

查看自动/通知面板以及我们如何执行此操作以与自动/wp-calypso 集成

注射增强剂

iframe 模式的默认操作

Calypso 中的自定义集成

顺便说一下,它运行得非常好

所有3条评论

查看自动/通知面板以及我们如何执行此操作以与自动/wp-calypso 集成

注射增强剂

iframe 模式的默认操作

Calypso 中的自定义集成

顺便说一下,它运行得非常好

8 个月过去了,我们仍然需要它😃 我们对处理数据的方式进行了重大重构,但中间件仍然发挥着重要作用。 我们可以探索 hooks 库是否适合这里。 我们可能会在这里使用过滤器注入额外的中间件: https : @youknowriad建议在开始时使用内部 API。

这被带有数据模块的新模式所取代:特别是subscribewithSelect API,它们允许开发人员观察并响应随时间的变化: https :

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

pfefferle picture pfefferle  ·  3评论

ellatrix picture ellatrix  ·  3评论

bradyvercher picture bradyvercher  ·  3评论

jasmussen picture jasmussen  ·  3评论

wpalchemist picture wpalchemist  ·  3评论