Привет, я новичок в React и машинописи. Я работаю над добавлением проверенного атрибута для флажка, но считаю его сложным. Я искал по SO, но все еще не мог приблизить его к работе.
Вот что я пытаюсь сделать:
Я создаю три компонента-флажка, используя один дочерний компонент [показанный здесь ]. Все они имеют свои собственные значения, которые мне нужно передать динамически.
interface ItemProps {
readonly className?: string;
readonly checked: boolean | undefined;
readonly accentedUnchecked?: boolean;
readonly imageUrl: string;
readonly errorMessage?: string;
readonly statusChecked?: boolean | undefined;
readonly onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
readonly handleClick: (event: React.ChangeEvent<HTMLInputElement>) => void;
};
readonly hasError?: boolean;
readonly title?: string;
readonly value?: number;
readonly description?: React.ComponentType;
}
export class Item extends React.Component<
ItemProps,
{
readonly isExpanded: boolean;
readonly checkboxStatus: boolean;
readonly temp: boolean;
readonly checked: boolean;
}
> {
constructor(props) {
super(props);
this.state = {
isExpanded: false,
checkboxStatus: false,
temp: false,
checked: this.state.temp
};
this.handleClick = this.handleClick.bind(this);
this.onChange = this.onChange.bind(this);
}`
private onChange(e: React.ChangeEvent<HTMLInputElement>) {
this.setState({ temp: e.currentTarget.checked });
}
private readonly handleClick = e =>
this.props.onChange({
currentTarget: { checked: e.currentTarget.checked }
} as any);
render() {
const unchecked = this.props.accentedUnchecked && this.props.checked === false;
return (
<label className="checkbox">
<input
type="checkbox"
checked={this.onChange} //Not working
onChange={this.props.onChange}
onClick={this.handleClick}
id={"test"}
data-id="0"
/>
);
Проблема в том, что я не уверен, как установить проверяемый атрибут на основе клика. когда я использую
checked={this.props.checked}
, я проверяю все флажки. Или, если я использую
checked={this.handleClick}
, я получаю сообщение об ошибке, говоря, что
не может присвоить void логическому значению "в машинописи.
Любое предложение о том, как это может быть решено будет очень полезно
Заранее спасибо