如果没有附加的渲染器,则无法更新组件。组件类:“类 org.primefaces.component.menuitem.UIMenuItem”

Posted

技术标签:

【中文标题】如果没有附加的渲染器,则无法更新组件。组件类:“类 org.primefaces.component.menuitem.UIMenuItem”【英文标题】:Can not update component without a attached renderer. Component class: "class org.primefaces.component.menuitem.UIMenuItem" 【发布时间】:2015-01-01 21:14:35 【问题描述】:

我的页面上有一条警告:

Can not update component without a attached renderer. Component class: "class org.primefaces.component.menuitem.UIMenuItem"

它运行良好,但我仍然收到此警告消息。我所拥有的是一个表格,它应该根据选择的行向用户显示上下文菜单,呈现一些菜单项或不呈现。

这是我的桌子:

<p:dataTable id="protocoloTable" var="protocolo" value="#juridicaBean.protocolsLazy" paginator="true" lazy="true" selectionMode="single"
            selection="#protocoloBean.selectedEntity">
            <p:ajax event="contextMenu" update=":registration_form:protocoloTableMenu" oncomplete="protoMenu.show(currentEvent);" process="protocoloTable" />

这是菜单:

<p:contextMenu id="protocoloTableMenu" for="protocoloTable" widgetVar="protoMenu">
    <p:menuitem value="Visualizar protocolo" icon="icon-ticket icon-large" actionListener="#ocorrenciaBean.loadViewOcorrencias(protocoloBean.selectedEntity)"
                process="@this" update="view_proto_details" oncomplete="PF('viewProtocolDlg').show()"></p:menuitem>
    <p:menuitem value="Nova ocorrência" icon="icon-plus icon-large" actionListener="#ocorrenciaBean.newOcorrencia(protocoloBean.selectedEntity)" oncomplete="PF('ocorrenciaDlg').show()" process="@this" update="ocorrencia_details" rendered="#protocoloBean.selectedEntity.status eq 'PENDENTE'"></p:menuitem>
    <p:menuitem value="Reabrir protocolo" icon="icon-unlock-alt icon-large" rendered="#protocoloBean.selectedEntity.status eq 'CONCLUIDO'"
                actionListener="#protocoloBean.openProtocol()" update="protocoloTable" process="@this"></p:menuitem>

PF4

【问题讨论】:

【参考方案1】:

我知道这个问题已经过时了,但我很好奇你是否直接从代码中使用 UIMenuItem?

如果是这样,您是否尝试过改用MenuModel - MenuItem (DefaultMenuModel/DynamicMenuModel - DefaultMenuItem)?

您还应该考虑为您在 contextMenu 中使用的 每个 项使用 id

【讨论】:

以上是关于如果没有附加的渲染器,则无法更新组件。组件类:“类 org.primefaces.component.menuitem.UIMenuItem”的主要内容,如果未能解决你的问题,请参考以下文章

未调用特定于类的渲染器组件

完全被这个 reactjs 逻辑难住了,变量没有更新组件的状态

无法在反应中呈现另一个类组件内的类组件

为啥渲染方法在类组件中运行两次而没有包含任何状态?

React hooks 功能组件防止在状态更新时重新渲染

如何在父组件中强制刷新子组件