javascript - 使用 Material 的 GridList 选择正确的项目

标签 javascript reactjs material-ui mobx

我有一个使用 Material-UI 的 react-mobx 代码,看起来像这样:

render() {
  // some consts declarations

  return (
    <div>
      <img src={selectedPhoto} alt={'image title'} />
      <GridList className={classes.gridList} cols={2.5}>
        {photos.map(tile => (
          <GridListTile key={tile} onClick={this.selectPhoto}>
            <img src={tile} alt={'image title'} />
            <GridListTileBar
              classes={{
                root: classes.titleBar,
                title: classes.title
              }}
            />
          </GridListTile>
        ))}
      </GridList>
    </div>
  );
}

这显示了照片列表。我想在用户单击其中一个 GridListTile 时更改所选照片。关键 (tile) 实际上是一个图像 url。

如代码所示,当 selectPhoto 函数如下所示时,我尝试添加 onClick={this.selectPhoto}:

selectPhoto = (photo) => {
  this.props.rootStore.selectPhoto(photo);
}

发送到函数的参数 photo 不是我想要的 tile(图像 url)。如何将此参数正确传递给函数?

最佳答案

您可以创建一个内联箭头函数并将您的 tile 传递给 selectPhoto:

photos.map(tile => (
  <GridListTile key={tile} onClick={() => this.selectPhoto(tile)}>
    <img src={tile} alt={'image title'} />
    <GridListTileBar
      classes={{
        root: classes.titleBar,
        title: classes.title
      }}
    />
  </GridListTile>
))

关于javascript - 使用 Material 的 GridList 选择正确的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51003225/

相关文章:

javascript - 如何在 Cordova PhoneGap 应用程序中打开设置-> iPhone 的隐私

javascript - 解决 IE8 损坏的 Object.defineProperty 实现

javascript - React 应用程序中的 setInterval

reactjs - 如何更改 material-ui select 中下拉图标(箭头)的位置?

css - Material-UI Input组件下划线颜色

javascript - 如何使一个div始终位于 View 的底部并使顶部div根据底部div调整大小?

forms - ReactJS 语义 ui - 当值属性存在时无法输入表单

javascript - WillMount() 中设置的状态无法在 DidMount() 中访问

javascript - Material-ui <SelectField> 项目未在 ReactJS 中显示

css - Material UI GridTile 不显示没有标题的 actionIcon