javascript – 在调用renderComponentToStaticMarkup时使用react.js渲染onclick属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在调用renderComponentToStaticMarkup时使用react.js渲染onclick属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1764字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 在调用renderComponentToStaticMarkup时使用react.js渲染onclick属性](/upload/InfoBanner/zyjiaocheng/794/c2532b37a344444297f2efd6ddf12340.jpg)
让我们说我有一个反应组件将呈现给静态html服务器端.某些元素将具有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属性,没有渲染
>提供了在DOM节点上手动设置属性的componentDidMount,但在呈现静态标记时不会调用此属性
解决方法:
onClick不接受字符串.你需要传递一个函数.通常,您可以执行onClick = {window.showRecaptcha.bind(null,recaptcha_id)}.
当然,这不适用于renderComponentToStaticMarkup.您必须使用JavaScript(外部或内联< script>标记)绑定事件,或做一些hacky,或不使用react. < script>使用addEventListener标记可能是最好的解决方案.
5年多以来,JavaScript字符串被认为是一种不好的做法.这包括onclick等在html,eval,setTimeout / setInterval中的字符串,可能还有一些我忘了.即使在渲染标记时,也不是可行的方法.
内容总结
以上是互联网集市为您收集整理的javascript – 在调用renderComponentToStaticMarkup时使用react.js渲染onclick属性全部内容,希望文章能够帮你解决javascript – 在调用renderComponentToStaticMarkup时使用react.js渲染onclick属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。