Fin*_*nch 19 twitter widget reactjs
我想将Twitter小部件添加到React中,但我不知道从哪里开始或如何做到这一点.我是React JS的新手.
这是代码的HTML版本:
<div class="Twitter">
<a class="twitter-timeline" href="https://twitter.com/<%= @artist.twitter %>" data-widget-id="424584924285239296" data-screen-name='<%= @artist.twitter %>'>Tweets by @<%= @artist.twitter %></a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的:
React.DOM.div
className: 'Twitter'
children: [
React.DOM.a
className: 'twitter-timeline'
href: "https://twitter.com/" + artist.twitter
'data-widget-id': "424584924285239296"
'data-screen-name': artist.twitter
children: 'Tweets by ' + artist.twitter
React.DOM.script
children: ...
]
Run Code Online (Sandbox Code Playgroud)
我打算添加点(...)所在的脚本,但这不起作用.谢谢您的帮助.
Raj*_*Rao 16
首先在index.html中加载Widget JS(在React脚本之前).然后在您的组件中,只需执行以下操作.小部件JS将重新扫描DOM.
componentDidMount: function() {
twttr.widgets.load()
}
Run Code Online (Sandbox Code Playgroud)
请参阅:https://dev.twitter.com/web/javascript/initialization
这适合我!
请注意,我使用React v0.14和ECMAScript 2015(又名ES6)与Babel.
index.html(在body标签之后):
<script>window.twttr = (function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {};
if (d.getElementById(id)) return t;
js = d.createElement(s); js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
t._e = []; t.ready = function(f) {
t._e.push(f);
};
return t;
}(document, "script", "twitter-wjs"));
</script>
Run Code Online (Sandbox Code Playgroud)
Twitter组件:
const Twitter = () => (
<a href="https://twitter.com/your-twitter-page"
className="twitter-follow-button"
data-show-count="false"
data-show-screen-name="false"
>
</a>
);
Run Code Online (Sandbox Code Playgroud)
一些React组件(使用Twitter按钮):
class SomeReactComponent extends Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<Twitter />
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要一个自定义按钮,您可以简单地执行此操作:
const Twitter = () => (
<a href="https://twitter.com/intent/tweet?via=twitterdev">
<i className="zmdi zmdi-twitter zmdi-hc-2x"></i>
</a>
);
Run Code Online (Sandbox Code Playgroud)
小智 1
恕我直言,你应该把它分成两部分。部分代码可以以某种方式在 React 组件中呈现
/**
* @jsx React.DOM
*/
var React = require('react');
var twitterWidget = React.createClass({
render: function () {
return (
<div class="Twitter">
<a class="twitter-timeline"
href={this.props.link}
data-widget-id={this.props.widgetId}
data-screen-name={this.props.screenName} >
Tweets by {this.props.screenName}
</a>
</div>
);
}
});
React.renderComponent(<twitterWidget link="..." widgetId="..." />, document.getElementById('containerId');
Run Code Online (Sandbox Code Playgroud)
您的 script 标签可以作为单独的 React 组件或作为普通 HTML 放置在结束 body 标签上方。
归档时间: |
|
查看次数: |
11036 次 |
最近记录: |