对于我正在使用ReactJS开发的应用程序,我必须向要返回JSON对象(如果成功)的服务发出ajax调用或少量的HTML代码(如果不成功)。这个HTML代码中有一个链接,它需要在我的反应应用程序中启动模式控件。我无法更改从ajax调用返回的HTML,因为它在其他应用程序中使用。从dangerouslySetInnerHtml内容调用React类功能
的HTML将是这个样子:
<span>ERROR MESSAGE HERE.</span>
<span>
<a data-error-code="141096">
<u>See details.</u>
</a>
</span>
当用户点击该“查看详情”链接,模态应该打开,去获得来自服务器的详细信息,并在显示它模态。这在网站的其他领域已经有效。
我正在努力处理onClick()
事件附加到<a>
标签。我在我的反应组件上有一个方法,HTML将以名称showErrorModal
呈现,它将打开错误详细模式。
任何帮助,非常感谢!
更新:一个jsFiddle与我需要的样本可以找到here。在这种情况下,我硬编码了我注入div区域的HTML。我需要做的是将
onClick()
事件添加到
htmlToInject
HTML字符串中的锚标记中,以呼叫
handleClick()
。我无法修改
htmlToInject
的内容,因为它是由服务器端生成的,我无法控制它。这几乎是服务器返回的确切结构,我需要错误消息传递的原因是因为它基于错误是动态的(例如:“这个优惠券适用的包中没有任何项目”vs “此优惠券已过期”vs“您没有资格使用此优惠券”)。单独的消息在个人
<span>
标签中返回。在服务器调用中,我也会得到返回的错误代码,因此我不必担心读取
data-error-code
属性。我回来从服务器上的样子:
{
success: false,
error-code: 123456,
error: "some HTML goes here"
}
当数据调用返回时,我做了this.setState()
设置的3个值,所以我已经知道的错误代码是什么。
因此,您显示的HTML应该由组件的'render()'或对话框渲染?请说明您需要处理点击的组件的render()方法。 – JMM
如何在网站的其他部分添加onClick事件? – Joshua
@JMM从服务器返回的HTML被注入组件的'div'。这个HTML包含一个锚标签,我需要添加一个'onClick()'来调用组件上的方法来打开模式对话框。我会用一个jsfiddle来更新这个问题。 – molson504x