javascript - 为什么 TableRow 在 Grommet 中不可悬停?

标签 javascript reactjs grommet

我正在使用索环开发一个应用程序。库中的许多组件都有一个 onClick 属性,当您向组件的 onClick 属性提供回调函数时,它就会变得可悬停。但 TableRow 组件似乎不会发生这种情况。 fiddle here 。用一些CSS来解决这个问题应该不会太困难,但我想知道这是否是我错过的一些设计概念(即TableRows特别不可悬停的原因)或者是否有更多的索环式使 TableRows 可悬停。

代码:

index.html:

<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"></script>

<div id="container">
    <!-- This element's contents will be replaced with your component. -->
</div>

index.js:

var Box = Grommet.Box;
var Table = Grommet.Table;
var TableRow = Grommet.TableRow;
var TableHeader = Grommet.TableHeader;

const NotHoverable = () => {

let data = [{"name": "John", "title": "Developer", "city": "Dublin"},
            {"name": "Paul", "title": "Architect", "city": "Bristol"},
            {"name": "Mary", "title": "CTO", "city": "Berlin"},
            {"name": "Frank", "title": "Ops", "city": "New York"},
            {"name": "Jane", "title": "HR", "city": "Tokyo"}]

  return (
    <Box pad='small'>
      <Table>
        <TableHeader labels={["name", "title", "city"]} />
        <tbody>
          {data.map( (component, index) => 
            <TableRow onClick={() => console.log('Row Clicked!')} style={{"borderBottom": "1px solid"}} >
              <td>
                {component.name}
              </td>
              <td>
                {component.title}
              </td>
              <td>
                {component.city}
              </td>
            </TableRow>
          )}
        </tbody>
      </Table>
    </Box>
  )
}

const Hoverable = () => 
  <Box colorIndex={'grey-1'} onClick={() => console.log('Box clicked')}>
    Hoverable Box
  </Box>

ReactDOM.render(
  <Box>
    <NotHoverable />
    <hr />
    <Hoverable />
  </Box>,
  document.getElementById('container')
);

最佳答案

Grommet 的设计秉承移动优先或至少移动友好的理念。

虽然单击大致相当于点击,但鼠标悬停在触摸设备上没有类似物。 onClick 几乎是一个用词不当,因为它来自抽象的 JavaScript-y 思考方式 - 许多组件都有 onActiveonSelect 处理程序.

正如您自己所指出的,使用一些 CSS 或 SCSS 来解决这个问题相当容易 - 只要记住移动用户永远不会看到它。 :)

关于javascript - 为什么 TableRow 在 Grommet 中不可悬停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185177/

相关文章:

javascript - 如何从 php 源创建数组 (javascript)

javascript - 修复按钮在图像上的位置

javascript - 为什么状态更新自己?不调用 setState

javascript - 更改索环组件的 colorIndex

javascript - 索环:顶部和底部选项卡激活相同的内容

javascript - 验证逗号分隔的数字

javascript - 对象作为 React 子对象无效(在 android 4.4 的手机中,对于 React 15.6.1)

javascript - 使用 React 和 react-fa 在输入文本背景上动态放置一个 Font Awesome 图标

javascript - 如何防止渲染方法在初始设置为未定义的状态上抛出错误

css - 如何隐藏 Grommet SideSplit 组件