gpt4 book ai didi

javascript - 调用 renderComponentToStaticMarkup 时使用 react.js 渲染 onclick 属性

转载 作者:搜寻专家 更新时间:2023-11-01 04:16:52 25 4
gpt4 key购买 nike

假设我有一个将呈现到静态 html 服务器端的 react 组件。某些元素将具有 onsubmit 和 onclick 属性,这些属性不会被 React 处理,但仍应调用 javascript 函数。在这种特殊情况下,我想在服务器端生成一个联系表单,但客户端需要加载 recaptcha:

var contactForm = React.createClass({
render: function() {
var recaptcha_id = "recaptcha_div";
return(
<div className="contact pure-form">
<h4 className="boxedTitle">Contact Form</h4>
<form key="form" method="POST" action=".">
<fieldset key="sender_email">
<label>Email</label>
<input name="sender_email" placeholder="Your Email" type="email" />
</fieldset>
<fieldset key="subject">
<label>Subject</label>
<input name="subject" placeholder="Subject" type="text" />
</fieldset>
<fieldset key="message">
<label>Message</label>
<textarea name="message" placeholder="Message"/>
</fieldset>
<fieldset key="humanity">
<div id={recaptcha_id}></div>
<input ref="captcha_btn" type="button" value="Show reCAPTCHA" onClick={"showRecaptcha('"+recaptcha_id+"');"}></input>
</fieldset>
<fieldset key="submit">
<input type="submit" className="btn btn-primary" value="Send"/>
</fieldset>
</form>
</div>
)
}
});

console.log(React.renderComponentToStaticMarkup(contatForm()))

但是没有渲染 onClick。我尝试了其他一些无效的方法:

  • 尝试了 onclick 属性,未呈现
  • 提供了 componentDidMount,它在 DOM 节点上手动设置属性,但在呈现静态标记时不会调用它

最佳答案

我遇到了同样的问题。我的解决方案是使用 dangerouslySetInnerHTML

 <td dangerouslySetInnerHTML={{__html: `
<button onClick="alert('hello')" >Detalii</button>
`}}
/>

希望对你有帮助,

关于javascript - 调用 renderComponentToStaticMarkup 时使用 react.js 渲染 onclick 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com