Select Table React 中的行
Select Table Row in React
我试图在我的 React Material 应用程序中实现一次只选择一行。我现在的问题是它突出显示了很多行。我一次只需要 highlight/select 一行。
请检查此代码框 link
代码
const [selected, setSelected] = React.useState([]);
const selectFood = (event, food) => {
const selectedIndex = selected.indexOf(food.name);
let newSelected = [];
if (selectedIndex === -1) {
newSelected = newSelected.concat(selected, food.name);
} else if (selectedIndex === 0) {
newSelected = newSelected.concat(selected.slice(1));
} else if (selectedIndex === selected.length - 1) {
newSelected = newSelected.concat(selected.slice(0, -1));
} else if (selectedIndex > 0) {
newSelected = newSelected.concat(
selected.slice(0, selectedIndex),
selected.slice(selectedIndex + 1)
);
}
setSelected(newSelected);
};
const isSelected = row => selected.indexOf(row.name) !== -1;
如果您只想 select 一行 -
那么这肯定会起作用(不需要您编写的复杂代码)
const selectFood = (event, food) => {
let newSelected = [food.name];
setSelected(newSelected);
};
工作 link - https://codesandbox.io/s/highlightselect-rows-react-material-8ejbc?file=/demo.js:1016-1123
我试图在我的 React Material 应用程序中实现一次只选择一行。我现在的问题是它突出显示了很多行。我一次只需要 highlight/select 一行。
请检查此代码框 link
代码
const [selected, setSelected] = React.useState([]);
const selectFood = (event, food) => {
const selectedIndex = selected.indexOf(food.name);
let newSelected = [];
if (selectedIndex === -1) {
newSelected = newSelected.concat(selected, food.name);
} else if (selectedIndex === 0) {
newSelected = newSelected.concat(selected.slice(1));
} else if (selectedIndex === selected.length - 1) {
newSelected = newSelected.concat(selected.slice(0, -1));
} else if (selectedIndex > 0) {
newSelected = newSelected.concat(
selected.slice(0, selectedIndex),
selected.slice(selectedIndex + 1)
);
}
setSelected(newSelected);
};
const isSelected = row => selected.indexOf(row.name) !== -1;
如果您只想 select 一行 - 那么这肯定会起作用(不需要您编写的复杂代码)
const selectFood = (event, food) => {
let newSelected = [food.name];
setSelected(newSelected);
};
工作 link - https://codesandbox.io/s/highlightselect-rows-react-material-8ejbc?file=/demo.js:1016-1123