#javascript #reactjs #ag-grid #ag-grid-react
Вопрос:
В настоящее время это отлично работает, когда редактор ячеек открывается с помощью enter (я вижу 13 в опоре для нажатия клавиш, но он равен нулю, когда он открывается с помощью навигации по вкладкам).
export const CellEditor = forwardRef((props, ref) => {
const { value, api: gridApi, keyPress, column } = props
const isOpenedByEnter = 13 === keyPress
// the above is null when the cell editor is opened by tab navigation, and no field for moude events
const checkboxRef = useRef()
const initialValue = isEmptyValue(value) ? undefined : value
const [checkboxValue, setCheckboxValue] = useState(initialValue)
useImperativeHandle(ref, () => {
return {
getValue: () => {
return checkboxValue
},
isPopup() {
return false
},
afterGuiAttached: () => {
isOpenedByEnter amp;amp; toggleCheckbox()
},
}
})
const toggleCheckbox = () => {
setCheckboxValue((prevCheck) => !prevCheck)
}
const handleOnChange = (clickEvent) => {
setCheckboxValue(clickEvent.target.checked)
}
return (
<div>
<input type="checkbox" ref={checkboxRef} checked={!!checkboxValue} onChange={handleOnChange} />
</div>
)})