首页 > 解决方案 > 是否有在我的古腾堡块内创建自定义块的功能?

问题描述

我正在制作一个滑块,我想为我选择的每个图像创建一个滑块。

我已经有了一个功能齐全的滑块。问题是,如何从滑块创建调用滑块?我认为必须有一种通过 API 的方法,我找到了函数 createBlock() 但没有什么真正起作用

const { createBlock } = wp.blocks;
//
// some code
//
<div id={ listId } className={ classes } key={ index }>
  {createBlock('illmatic6514/slide')}
</div>

我期待创建一个滑块。(为简单起见,我从滑块中删除了变量并放入静态图像)我得到“无法读取未定义的属性'属性'”

即使我调用 createBlock('core/paragraph') 我得到“对象作为 React 孩子无效”

标签: wordpressreactjsblockjsxwordpress-gutenberg

解决方案


您可能希望将 Slide 定义为组件而不是块:

function Slide(props) {
  return <div>{props.slideName}</div>;
}

或者作为扩展 Component 的类:

const { Component } = wp.element
class Slide extends Component {
  render() {
    return (
      <div>{ this.props.slideName }</div>
    )
  }
}

然后在您的 Slider 块中,您将使用该组件:

edit(props) {
  return (
    <div>
      <Slide slideName="Slide 1" />
      <Slide slideName="Slide 2" />
    </div>
  )
}

https://reactjs.org/docs/components-and-props.html


推荐阅读