@zzmaster

Как передать Ref в React admin?

У меня есть компонент редактирования кампании, вместе со списком урлов, ей принадлежащих, и я делаю in-place возможность редактирования некоторых полей урлов. Под списком урлов вывожу URLEditableButtons где кнопки Save и Cancel.

export default () => {

	const urlsGridRef  = React.createRef();
	
    return <Edit>
		<>
        <SimpleForm>
            <TextInput source="comment" multiline={true}  />
            <BooleanInput source="enabled" />
			
        </SimpleForm>
		
		<ReferenceManyField label="URLs" reference="urls" target="campaign_id" sx={{mt:5}}>
		  <Datagrid ref={urlsGridRef}>
			<NumberField source="id"  />
			<UrlButton />
			<TextField source="campaignId" />
			<EditableField name="url" type="text" label="URL" />
			<EditableField name="weight" type="number" label="Weight" />
			<DateField source="updatedAt" />
			<DateField source="createdAt" />
		  </Datagrid>
		</ReferenceManyField>
		<URLEditableButtons grid={urlsGridRef} />
		</>
    </Edit>;
	
}


В компоненте URLEditableButtons хочу написать обработчики кнопок Save и Cancel - им нужна будет ссылка на таблицу урлов, я ее передаю через props. Однако, ссылка оказывается равна null.

export default (props) => {
	const hash = getHashQuery();
	const campaign_id = hash ? hash.campaign_id : 0;
	const gridTable = props.grid.current; // == null


	const cancelEdit = () => {
             // need to use grid here
	};
	
    return <div data-id="{campaign_id}"  >
		<Button  size="small" variant="contained" onClick={cancelEdit}  className="cancel">
			<span><BlockIcon /> CANCEL EDIT</span>
		</Button>
	</div>;
}


Что я делаю не так?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы