Я создаю функциональный компонент реакции с AgGridReact
:
const DataGrid = (props) =>
{
const [gridRowData, setGridRowData] = useState([]);
const [columnDefinition, setColumnDefinition] = useState([]);
useEffect(async () =>
{
if(props.name && props.name !== "")
{
... get grid row data and column definition here according to props.name - working fine
}
},[props.name]);
let frameworkComponents = {
customLoadingOverlay: LoadingOverlayTemplate,
customNoRowsOverlay: UxDataGridCustomNoRows,
editButton: params => <ViewAndDeleteSetting {...params}
openAddConfigurationsWindow={openAddConfigurationsWindow}
onDeleteSetting={onDeleteSetting} />
};
.
.
.
const onDeleteSetting = async () =>
{
console.log("ON DELETE AND NAME IS: " + props.name ); //PRINTS AN EMPTY STRING
...
}
return (
<AgGridReact
columnDefs={columnDefinition}
rowData={gridRowData}
frameworkComponents={frameworkComponents}/>
);
Как вы можете видеть в комментарии в onDeleteSetting
, имя остается пустым, когда вызывается этот обратный вызов. Рендеринг самой ячейки прекрасен, и ViewAndDeleteSetting
действительно рендерится, просто кажется, что он рендерится только один раз, а не каждый раз при изменении имени. Как я могу вызвать повторный рендеринг внутреннего ViewAndDeleteSetting
компонента с использованием самого последнего frameworkComponents
?
onDeleteSetting
читает реквизиты компонента agGrid, поэтому, если вы не обновите весь компонент новыми реквизитами, печать имени будет такой же. Я не понимаю, почему вы думаете, что имя изменится, но, возможно, попробуйте добавить аргументы в методonDeleteSetting
из компонентаViewAndDeleteSetting
. - person Kaki Master Of Time   schedule 13.01.2021