我不想使用默认的搜索栏,而是想按如下方式自定义它:
<i className="fa fa-search"/>在搜索占位符中使用图标 ( )。到目前为止,这是我的代码:
import { Grid, _ } from 'gridjs-react';
const tableColumns = [
'Name',
'Phone',
{
name: 'Custom component',
formatter: (text) => _(<b>{text}</b>)
}
]
const tableData = [
['John', 12345, 'myText1'],
['Mike', 67891, 'myText2'],
]
export default function myCustomGrid() {
return (
<Grid
sort={true}
search={true} // This adds the search inp
columns={tableColumns}
data={tableData}
language={{
search: {
placeholder: ' Search...'
}
}}
pagination={{
enabled: true,
limit: 2
}}
/>
);
}
Run Code Online (Sandbox Code Playgroud)
这可能是门户的一个很好的用例。
这使我们能够更灵活地决定在哪里呈现按钮。使用门户,我们可以使该按钮成为搜索输入的同级按钮:
const gridjsHeadRoot = document.getElementsByClassName("gridjs-head");
class GridHeaderButton extends React.Component {
constructor(props) {
super(props);
this.el = document.createElement("button");
this.el.innerText = "Click";
this.el.style.cssText = `
background-color: #0069d9;
color: #fff;
border-radius: .25rem;
padding: .375rem .75rem;
float: right
`;
this.el.onclick = function () {
// Do something
};
}
componentDidMount() {
gridjsHeadRoot[0].appendChild(this.el);
}
componentWillUnmount() {
gridjsHeadRoot[0].removeChild(this.el);
}
render() {
return ReactDOM.createPortal(this.props.children, this.el);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
function MyCustomGrid() {
return (
<Grid
sort={true}
search={true} // This adds the search inp
columns={tableColumns}
data={tableData}
language={{
search: {
placeholder: " Search...",
},
}}
pagination={{
enabled: true,
limit: 2,
}}
/>
);
}
export default function App() {
return (
<div className="App">
<MyCustomGrid />
<GridHeaderButton />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
此处放置的顺序GridHeaderButton很重要。因为GridHeaderButton目标是在内部渲染的元素MyCustomGrid,这意味着您应该放在GridHeaderButton下面CustomGrid,否则它将不起作用。
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |