Ошибка создания настраиваемого блока Wordpress Gutenberg

Я пытаюсь создать собственный блок для редактора Wordpress Gutenberg в моем коде, но когда я пробую этот код, он сообщает мне: "Этот блок обнаружил ошибку, и его невозможно просмотреть". Я хочу знать, что не так в моем коде? Я использовал "React.createElement" вместо "wp.element.createElement", у меня тоже была та же ошибка. Как с этим бороться?

var el = wp.element.createElement;
wp.blocks.registerBlockType('shaiful-gutenberg/notice-block', {

   title: 'Notice',
   icon: 'lightbulb',
   category: 'common', 
  attributes: {
    numb: {type: 'string'},
    title: {type: 'string'},
    percent: {type: 'string'},
    imageo: {type: 'string'},
    ccode: {type: 'string'},
    expireo: {type: 'string'},
    affleo: {type: 'string'}
  },

  edit: function(props) {
  function updateNumb(value) {
      props.setAttributes({numb: event.target.value})
    }
    function updateTitle(value) {
      props.setAttributes({title: event.target.value})
    }
    function updatePercent(value) {
      props.setAttributes({percent: event.target.value})
    }
    function updateImageo(value) {
      props.setAttributes({imageo: event.target.value})
    }
    function updateCcode(value) {
      props.setAttributes({ccode: event.target.value})
    }
    function updateExpireo(value) {
      props.setAttributes({expireo: event.target.value})
    }
    function updateAffleo(value) {
      props.setAttributes({affleo: event.target.value})
    }
    return 
el("div", {
  className: "innero"
},
el("div", {
  className: "collection-header"
}, 
el("span", null, 
el("input", {
  type: "text",
  onChange: "updateNumb",
  value: "props.attributes.numb",
  placeholder: "Enter Number..."
}))),
el("h4", null, 
el("input", {
  type: "text",
  onChange: "updateTitle",
  value: "props.attributes.title",
  placeholder: "Enter Title..."
})), 
el("div", {
  className: "collection-container container"
},
el("div", {
  className: "collectionrow row"
},
el("div", {
  className: "collection-img col-md-6"
},
el("div", {
  className: "relpropercent ribbon ribbon-top-left"
},
el("span", null, 
el("input", {
  type: "text",
  onChange: "updatePercent",
  value: "props.attributes.percent",
  placeholder: "Enter percentage..."
}))),
el("input", {
  type: "text",
  onChange: "updateImageo",
  value: "props.attributes.imageo",
  placeholder: "Enter Image Url..."
})),
el("div", {
  className: "collection-info col-md-6"
},
el("div", {
  className: "relprocode container"
}, 
el("div", {
  className: "row"
}, 
el("div", {
  className: "col-9"
},
el("input", {
  type: "text",
  onChange: "updateCcode",
  value: "props.attributes.ccode",
  placeholder: "Enter Code..."
})),
el("div", {
  className: "col-3"
},
el("button", {
  className: "relcopycode",
  onclick: "relclicktocopy(this)"
},
el("i", {
  className: "fa fa-copy"
}))))), 
el("div", {
  className: "relproexpiry"
},
el("input", {
  type: "text",
  onChange: "updateExpireo",
  value: "props.attributes.expireo",
  placeholder: "Enter expiry date..."
})),
el("input", {
  type: "text",
  onChange: "updateAffleo",
  value: "props.attributes.affleo",
  placeholder: "Enter Aff Url..."
})))));
  },
  save: function(props) {
    return
el("div", {
  className: "innero"
},
el("div", {
  className: "collection-header"
},
el("span", null, props.attributes.numb)),
el("h4", null, props.attributes.title),
el("div", {
  className: "collection-container container"
},
el("div", {
  className: "collectionrow row"
},
el("div", {
  className: "collection-img col-md-6"
},
el("div", {
  className: "relpropercent ribbon ribbon-top-left"
},
el("span", null, props.attributes.percent)), 
el("img", {
  src: "{props.attributes.numb}",
  title: "{props.attributes.title}",
  alt: "{props.attributes.title}"
})),
el("div", {
  className: "collection-info col-md-6"
},
el("div", {
  className: "relprocode container"
}, 
el("div", {
  className: "row"
},
el("div", {
  className: "col-9"
}, 
el("input", {
  type: "text",
  value: "{props.attributes.ccode}",
  className: "RelInput",
  readonly: true
})),
el("div", {
  className: "col-3"
},
el("button", {
  className: "relcopycode",
  onclick: "relclicktocopy(this)"
},
el("i", {
  className: "fa fa-copy"
}))))),
el("div", {
  className: "relproexpiry"
}, props.attributes.ccode),
el("input", {
  type: "submit",
  className: "promo-link",
  value: "Shop Now",
  onclick: "window.open('{props.attributes.affleo}', '_blank')"
})))));
  }
})
``

0 ответов

Другие вопросы по тегам