[英]Dynamic page pagination is not working in react table
我正在使用react-table
v7 来生成一个表。 现在我试图通过写这个来动态地进行页面大小分页
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={pageSize}
onChange={(e) => {
setPageSize(Number(e.target.value));
}}
>
{page.length > 10 ? (
<MenuItem id={10} value={10} key={10}>
Show 10
</MenuItem>
) : (
[10, 20].map((pageSize) => (
<MenuItem value={pageSize} key={pageSize}>
Show {pageSize}
</MenuItem>
))
)}
</Select>
如果页面(行)长度超过 10,它会显示两个选项Show 10
和Show 20
,但是当我选择Show 20
,下拉值不再显示值
我在控制台Material-UI: You have provided an out-of-range value '20' for the select component. Consider providing a value that matches one of the available options or ''. The available values are '10'.
收到警告Material-UI: You have provided an out-of-range value '20' for the select component. Consider providing a value that matches one of the available options or ''. The available values are '10'.
Material-UI: You have provided an out-of-range value '20' for the select component. Consider providing a value that matches one of the available options or ''. The available values are '10'.
如果我在{page.length > 10 ? ..
删除三元运算符,它工作正常{page.length > 10 ? ..
{page.length > 10 ? ..
然后把[10,20,30].map() ..
如果对于初始渲染, page.length
的值超过 10,下拉列表将只显示Show 10
因为这就是您的逻辑状态。 如果这确实是您想要的,并且您的问题是未显示的值,那么它的工作原理是将MenuItem
更改为option
,并且select
和option
都未大写(在 react-table 7.7.0 中):
<select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={pageSize}
onChange={(e) => {
setPageSize(Number(e.target.value));
}}
>
{page.length > 10 ? (
<option id={10} value={10} key={10}>
Show 10
</option>
) : (
[10, 20].map((pageSize) => (
<option value={pageSize} key={pageSize}>
Show {pageSize}
</option>
))
)}
</select>
另一方面,如果您希望在行数少于 10 行时提供仅Show 10
选项的选项,则在三元运算符检查中将>
更改为<
。 这样,如果行数少于 10 行,您将(动态地)提供仅Show 10
的选项,或者当有 10 行或更多行时,提供两个选项Show 10
和Show 20
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.