react-admin:处理 <Datagrid> 中自定义字段中的单击事件

Tru*_*ung 4 react-admin

在我们的react-admin应用程序中,首先我们显示一个产品列表。

在每一行上,我们还显示一个文本字段(以允许用户输入份数)和一个“打印”按钮。

片段如下:

export const ProductList = props => (
  <List filters={<ProductFilter />} exporter={false} {...props} >
    <Datagrid rowClick="edit" >
      <TextField source="id" />
      <TextField source="productName" />
      <PrintPanel label="Print" />
    </Datagrid>
</List>
);
Run Code Online (Sandbox Code Playgroud)

自定义字段PrintPanel如下:

import TextField from '@material-ui/core/TextField';
import Button from '@material-ui/core/Button';

class PrintPanel extends React.Component {
  state = {
    copies: 1,
  }
  render() {
    return (
      <span>
        <TextField label="Number of copies"/>
        <Button variant="contained" color="primary"
          onClick={() => alert(1)}   // PROBLEM: this is NOT called when user click the button
        >
          Print
        </Button>
      </span>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是:当用户单击“打印”按钮时,react-admin 会打开“编辑”页面,并且不会调用 Button 的 onclick。

我的问题是:如何解决这个问题?

Max*_*lex 8

尝试这个:onClick={ (e) => { e.stopPropagation(); alert(1) } }

如果没有帮助,请更新react-admin版本,此错误已经修复。