React useStatehooks 오류: 'xxx' 유형의 인수를 'SetStateAction' 유형의 매개 변수에 할당할 수 없습니다.
리액트 후크를 사용하여 업데이트하지만 setState에서 오류가 발생합니다.
'{ alertRules: any; }' 유형의 인수는 'SetStateAction' 유형의 매개 변수에 할당할 수 없습니다.개체 리터럴은 알려진 속성만 지정할 수 있으며 'alertRules'는 'SetStateAction'.ts(2345) 유형에 없습니다.
여기 제 코드가 있습니다.
import React, { useState, useEffect } from 'react';
import { FieldArray } from 'redux-form';
import { CoordinateSelect } from '~/fields';
import lodash from 'lodash';
import { connect } from 'react-redux';
import { filterDispatchers } from '~/actions';
import t from '~/locale';
interface Props {
getAlertRules(o: object): Promise<any>;
}
type Alert = {
...
}
const connector = connect(
null,
filterDispatchers('getAlertRules'),
);
const AlertRuleForm = (props: Props) => {
const [alertRules, setAlertRules] = useState<Alert[]>([]);
useEffect(() => {
fetchData();
}, []);
const fetchData = async () => {
const actionResult = await props.getAlertRules({ limit: -1 });
const alertRules = lodash.get(actionResult, 'response.alertRules', []);
setAlertRules({ alertRules }); //Error form here
};
const groupedRules = lodash.groupBy(alertRules, 'resourceType');
const levelTypes = lodash.uniq(alertRules.map((alert: Alert) => alert.level));
return (
<FieldArray
name="alertRules"
component={CoordinateSelect}
label={t('å‘Šè¦è§„则')}
firstOptions={lodash.keys(groupedRules)}
secondOptions={groupedRules}
thirdOptions={levelTypes}
required
/>
);
};
export default connector(AlertRuleForm);
오류는 상태를 설정할 때 발생합니다.
'{ alertRules: any; }' 유형의 인수는 'SetStateAction' 유형의 매개 변수에 할당할 수 없습니다.개체 리터럴은 알려진 속성만 지정할 수 있으며 'alertRules'는 'SetStateAction'.ts(2345) 유형에 없습니다.
짧은 답변 :- setAlertRules 문에서 곱슬곱슬한 중괄호를 제거합니다. 이는 다음 사이에 불일치를 초래합니다.type
의setAlertRules
정의 및 사용법에 따라 변경합니다.
이것은 Object 리터럴 Shorthand로 알려진 ES6의 기능입니다.
경고 규칙 정의 시 setAlertRules 유형은 SetStateAction < Alert [ ] > 입니다. 그러면 {alertRules:any} 유형의 값을 지정하려고 합니다. 이 경우 오류가 발생합니다.
전달된 값alertRules
키가 있는 개체입니다.alertRules
그리고 유형의 배열로서의 가치.Alert
.
그래서, 곱슬곱슬한 브레이스를 이것으로 변환할 때 제거합니다.
setAlertRules({ alertRules: alertRules });
// now {alertRules: any} this thing will make sense
alertRules 업데이트를 위해 이 코드를 사용해 보십시오.
// see no curly braces .
setAlertRules( alertRules );
언급URL : https://stackoverflow.com/questions/58709934/react-usestate-hooks-error-argument-of-type-xxx-is-not-assignable-to-paramete
'programing' 카테고리의 다른 글
Android에서 Firebase를 사용하려면 어떤 ProGuard 구성이 필요합니까? (0) | 2023.07.06 |
---|---|
WordPress 오류:웹 사이트에 심각한 오류가 발생했습니다.지침은 사이트 관리자 전자 메일 받은 편지함을 확인하십시오. (0) | 2023.07.06 |
WebApi 호출을 통해 페이지에서 Excel 파일 다운로드 (0) | 2023.07.06 |
이 파이썬 스니펫에서 세미콜론이 허용되는 이유는 무엇입니까? (0) | 2023.07.06 |
객체의 인스턴스로 설정되지 않은 객체 참조를 해결하는 방법.? (0) | 2023.07.06 |