diff --git a/packages/slate/src/models/stack.js b/packages/slate/src/models/stack.js index f04cb8922..a0412641f 100644 --- a/packages/slate/src/models/stack.js +++ b/packages/slate/src/models/stack.js @@ -135,17 +135,13 @@ class Stack extends Record(DEFAULTS) { render(property, props, ...args) { const plugins = this.getPluginsWith(property) - .slice() - .reverse() - let { children = null } = props - - for (const plugin of plugins) { + return plugins.reduceRight((children, plugin) => { + if (!plugin[property]) return children const ret = plugin[property](props, ...args) - if (ret == null) continue - props.children = children = ret - } - - return children + if (ret == null) return children + props.children = ret + return ret + }, props.children === undefined ? null : props.children) } }