我发现了一个令人惊叹的链接Here之一,该链接为Medium
个帖子创建了小部件。
很遗憾,我无法在react
网站上使用代码
示例(随机中型作者):
<div id="medium-widget"></div>
<script src="https://medium-widget.pixelpoint.io/widget.js"></script>
<script>MediumWidget.Init({renderTo: '#medium-widget', params: {"resource":"https://medium.com/@sunilsandhu","postsPerLine":2,"limit":4,"picture":"big","fields":["description","author","claps","publishAt"],"ratio":"landscape"}})</script>
结果应该是这样
如何使用React网站中的代码?
我也发现了这个here的Angular版本 但无法在React应用中使用。
预先感谢
答案 0 :(得分:2)
在index.html
<script src="https://medium-widget.pixelpoint.io/widget.js"></script>
<script type="text/javascript">
function mediumWidget(){
MediumWidget.Init({renderTo: '#medium-widget', params: {"resource":"https://medium.com/@sunilsandhu","postsPerLine":2,"limit":4,"picture":"big","fields":["description","author","claps","publishAt"],"ratio":"landscape"}});
}
</script>
在您的组件中
componentDidMount() {
window.mediumWidget();
}
render() {
return (<div id="medium-widget"></div>);
}
答案 1 :(得分:1)
只需在var x = 1;
while (x <= 20) {
if (x % 3 === 0 && x % 5 === 0) {
console.log("JuliaJames");
} else if (x % 5 === 0) {
console.log("James");
} else if (x % 3 === 0) {
console.log("Julia");
} else {
console.log(x);
}
x++;
}
生命周期运行MediumWidget.Init
代码,或使用componentDidMount
钩子即可运行它。
答案 2 :(得分:0)
在您的index.html中添加以下代码
<script src="https://medium-widget.pixelpoint.io/widget.js"></script>
<script type="text/javascript">
function mediumWidget() {
MediumWidget.Init({
renderTo: "#medium-widget",
params: {
resource: "https://medium.com/@sunilsandhu",
postsPerLine: 2,
limit: 4,
picture: "big",
fields: ["description", "author", "claps", "publishAt"],
ratio: "landscape",
},
});
}
</script>
在您的组件中添加以下代码。
componentDidMount() {
try {
var widget = document.getElementById("medium-widget");
if (!!widget) {
window.mediumWidget();
}
}
catch(e){
window.location.reload();
}
}
return (<div id="medium-widget" ></div>)
如果您的React应用程序中有多个页面,并且每个页面都使用了history.push(),那么当您返回呈现中型窗口小部件的页面时,就会出错。
因此,我添加了try-catch。我们需要检查中等窗口小部件是否已加载。如果介质加载失败,页面将再次重新加载。
答案 3 :(得分:0)
我稍微深入了一下代码,找到了一种用于卸载窗口小部件的方法。结果:
useEffect(() => {
window.MediumWidget.Init(widgetParams);
return () => {
window.MediumWidget.unmount();
};
}, []);
unmount()
方法也可以在ComponentWillUnmount
中调用。