gpt4 book ai didi

javascript - React.js - 使用 renderComponentToString 时未调用 componentDidMount

转载 作者:行者123 更新时间:2023-11-29 21:59:09 25 4
gpt4 key购买 nike

我正在为 Twitter 的 Bootstrap 弹出窗口设置 html 内容。

var Content = React.createClass({
componentDidMount: function() {
alert('ok'); // not called
},
render: function() {
return (
<div>foobar</div>
);
}
});

var Button = React.createClass({
componentDidMount: function() {
$(this.getDOMNode()).popover({
placement: 'right',
trigger: 'manual',
html: true,
content: function() {
return React.renderComponentToString(<Content />);
}
});
},
render: function() {
return (
<button onClick={this.handleClick} className="btn btn-default">{this.props.name}</button>
);
},
handleClick: function() {
$(this.getDOMNode()).popover('toggle');
}
});

为此,我可以将 html 内容设置为 popover,我必须使用 renderComponentToString 方法。不幸的是,这个方法没有调用方法componentDidMount。为什么会发生这种情况以及如何解决?谢谢。

最佳答案

我改编了React-bootstrap docs并让弹出窗口以这种方式工作:

/** @jsx React.DOM */

var Button = ReactBootstrap.Button;
var OverlayTrigger = ReactBootstrap.OverlayTrigger;
var Popover = ReactBootstrap.Popover;

var Content = React.createClass({
render: function() {
return (
<OverlayTrigger trigger="click" placement="right" overlay={<Popover title="Popover right"><strong>Holy guacamole!</strong> Check this info.</Popover>}>
<Button bsStyle="default">Holy guacamole!</Button>
</OverlayTrigger>
);
}
});

包含 react-bootstrap.js 以获取全局可访问的组件。它在 bower package 中提供.

当然也包括 React。

关于javascript - React.js - 使用 renderComponentToString 时未调用 componentDidMount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832025/

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