【问题标题】:Visibility Component props not firing - Semantic UI React可见性组件道具未触发 - 语义 UI React
【发布时间】:2018-01-20 14:46:09
【问题描述】:

我正在尝试使用可见性组件在我的 Semantic UI React 应用程序上实现无限滚动。

我一直在 Semantic UI React 页面上关注这个示例:https://react.semantic-ui.com/behaviors/visibility#callback-frequency-example。我将代码简化如下:

import React, { Component } from 'react';
import { Visibility } from 'semantic-ui-react';

export default class VisibilityExample extends Component {
    render() {
        return (
            <Visibility
                continuous={false}
                once={false}
                onTopVisible={() => console.log('test')}
                onTopPassed={() => console.log('test')}
                onBottomVisible={() => console.log('test')}
                onBottomPassed={() => console.log('test')}
                onTopVisibleReverse={() => console.log('test')}
                onTopPassedReverse={() => console.log('test')}
                onBottomVisibleReverse={() => console.log('test')}
                onBottomPassedReverse={() => console.log('test')}
                onPassing={() => console.log('test')}
                onPassingReverse={() => console.log('test')}
                onOnScreen={() => console.log('test')}
                onOffScreen={() => console.log('test')}
            >
                <div>Hello</div>
            </Visibility>
        );
    }
}

在我的简单 React 应用程序中,没有一个 console.log 语句被触发。但是,当我在 Semantic UI React 网页上操作代码时,console.log 语句会按预期触发。

我错过了什么?

编辑:这是我在 index.js 文件中呈现 VisibilityExample 组件的位置:

/* global document */

import React from 'react';
import ReactDOM from 'react-dom';

import VisibilityExample from './VisibilityExample';

ReactDOM.render(
    <VisibilityExample />,
    document.getElementById('root')
);

【问题讨论】:

  • 您在哪里使用了VisibilityExample 组件?也向我们展示那个 JS 文件
  • 尝试使用不同的浏览器并查看,并报告了 google chrome 的错误。我不确定它现在是否已修复。
  • @JudeNiroshan 刚刚修改了我的答案,包括我在哪里渲染 VisibilityExample 组件——这是一个非常简单的文件。我也在 Firefox 中尝试过,没有运气
  • 它也不适合我。而且我的页面足够大,可以产生滚动条。

标签: reactjs react-redux visibility semantic-ui semantic-ui-react


【解决方案1】:

可见性组件的事件仅在您滚动组件的容器时触发。因为所有这些事件都是基于默认的window scroll 事件。

但如果你只有给定的代码,它不会有任何滚动条因此滚动事件。所以你需要添加一些任意高度的divs 来获取滚动条和滚动内容,以查看console.log 语句正在触发。

见这个例子:https://codesandbox.io/s/D99mwMy9B

【讨论】:

猜你喜欢
  • 2020-11-27
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多