У меня есть дочерний компонент, который содержит метод в качестве реквизита. Этот дочерний компонент отображает Radio Group. Когда я нажимаю эти переключатели, основываясь на значении радио, отображается другой компонент. У меня две проблемы.
- Я не могу вызвать метод поддержки дочерних компонентов (setSeverityLevel)
- containsMatchingElement () возвращает false, даже если отладка показывает доступный компонент.
import * as React from "react";
import { SelectSeverityLevel } from "components/Common/SelectSeverityLevel";
import Sev1Confirmation from "../Sev1Confirmation";
interface State {
issueSummary: string;
description: string;
createIncidentRequested: boolean;
selectedSeverity: TicketSeverityEnum;
errorMessage: JSX.Element;
}
export class TechnicalSRCreate extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = {
issueSummary: undefined,
description: undefined,
createIncidentRequested: false,
selectedSeverity: "HIGH",
errorMessage: undefined
};
}
private sev1Confirmation = (): JSX.Element => {
return (
<Sev1Confirmation
checked={this.props.sev1Confirmed}
confirm={(value: boolean) => {
this.props.setSev1Confirmed(value);
}}
/>);
}
private onSelectSeverity = (value: string): void => {
console.log("onSelectSeverity>>>");
console.log(value);
this.props.setSeverity(value as TicketSeverityEnum);
}
private internalRender(): JSX.Element {
return (
<>
<SelectSeverityLevel
defaultSeverity={this.props.severity}
fieldName={SeverityLevelFieldName}
setSeverityLevel={this.onSelectSeverity}
/>
{this.props.severity === "HIGHEST" ?
this.sev1Confirmation()
: null}
</>
)
}
public render(): JSX.Element {
return (
<>
<Form>
.....
<div>{this.internalRender()}</div>
</Form>
</>
)
}
}
export default TechnicalSRCreate;
что мне здесь не хватает?