【发布时间】:2015-11-01 05:23:58
【问题描述】:
更新 #1:根据下面的答案,这适用于 Safari,但不适用于 MacBook Pro 上的 Chrome。
更新#2:根据下面的带有 ReactJS 和 Chrome 的 JSfiddle,这个问题可以在没有 Meteor 的情况下重现。但是它永远不能与 Meteor 一起使用,即 react-packages Atmosphere 包,除非 1)将 Chrome 置于开发工具移动设备模式并将其添加到 index.html
<meta name="viewport" content="initial-scale=1" />
ReactJS 应用程序中的语义 UI 无限滚动未在 .visibility 中调用 onBottomVisible()。 onBottomVisible 滚动到页面底部时永远不会被调用。
我尝试将height 强制到<div className="myfeed"> 上,但这只会在加载时触发onBottomVisible() 回调,而不是在滚动到底部时触发。
查看下面的代码和这些 JSfiddle 的:
- ReactJS 版本:http://jsfiddle.net/2wvfjpy9/9/
- 非 React 版本:https://jsfiddle.net/4p6d7x86/12/
CSS:
.myfeed {
height: 200px;
}
ReactJS / JavaScript:
var App = React.createClass({
componentDidMount: function() {
$('.myfeed').visibility({
once: false,
// update size when new content loads
observeChanges: true,
// load content on bottom edge visible
onBottomVisible: function() {
console.log("infiniateScroll ... called.");
alert("infiniateScroll ... called.");
}
});
},
render: function() {
var showFeedHTML = [];
for (var i=0; i < 20; i++) {
showFeedHTML[i] = (
<li key={ i }>
{ i }: stuff
</li>
);
}
return (
<div className="myfeed">
<h3>Semantic UI & ReactJS: Infinite Scroll Example</h3>
{ showFeedHTML }
</div>
);
}
});
React.render(<App />, document.getElementById('container'));
【问题讨论】:
标签: meteor reactjs infinite-scroll semantic-ui