I am making an interactive react-table.
My goal is to make a table that can be an editable per row when clicking on a button in a table cell.
I have designed an EditableCell like the following:
import React, {useState} from "react";
export const EditableCell = ({
value: initialValue,
row: Row,
column: {id, editable, state},
isEditing,
}) => {
// We need to keep and update the state of the cell normally
const [value, setValue] = React.useState(initialValue);
const {index} = Row;
const onChange = e => {
setValue(e.target.value);
};
// We'll only update the external data when the input is blurred
const onBlur = () => {
updateItem(index, id, value);
}
// If the initialValue is changed external, sync it up with our state
React.useEffect(() => {
setValue(initialValue)
}, [initialValue]);
let retObj = null;
if (isEditing && editable) {
switch (id) {
default:
retObj = <input className="input-edit w-100" value={value} onChange={onChange} onBlur={onBlur}/>;
break;
}
} else {
retObj = value
}
return retObj;
}
In my columns i have:
{
accessor: '[editButton]',
Cell: (cellObj) => <button onClick={() => handleClickEditRow(cellObj.row.index)>Edit</button>
}
How can i now edit the 'isEditing' property from my 'EditableCell'?
question from:
https://stackoverflow.com/questions/66048869/react-table-v7-add-edit-row-button 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…