0

我正在尝试根据反应中的条件向元素呈现一些属性,如下所示:

dom.span
  className: "btn pull-right btn-primary#{if @state.enableCartButton then '' else ' disabled'}"
  if @state.enableCartButton
    onClick: @submitCustomizeForm
  else
    'data-toggle': "tooltip"
    'data-placement': "left"
    title: "Select a measurement profile to continue"
  translate('store.products.customize.save', 'ADD TO CART')

但是根据条件得到以下错误,

Uncaught Invariant Violation:对象作为 React 子对象无效(发现:对象与键 {onClick})。如果您打算渲染一组子对象,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查Constructor.

或者

Uncaught Invariant Violation:对象作为 React 子对象无效(发现:对象与键 {data-toggle, data-placement, title})。如果您打算渲染一组子对象,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查Constructor.

以下代码虽然有效,

if @state.enableCartButton
  dom.span
    className: "btn pull-right btn-primary"
    onClick: @submitCustomizeForm
    translate('store.products.customize.save', 'ADD TO CART')
else
  dom.span
    className: "btn pull-right btn-primary disabled"
    'data-toggle': "tooltip"
    'data-placement': "top"
    title: "Select a measurement profile to continue."
    translate('store.products.customize.save', 'ADD TO CART')  

此外,我不确定为什么我不能在 if/for 中渲染多个元素。只允许一个元素,如果我渲染多个元素而不是仅最后一个元素在 HTML 中呈现

4

0 回答 0