반응형
흐름(원어민 반응)에서 'this.state' 사용에 대한 오류가 표시됨
를 사용하려고 할 때마다 다음 오류가 발생합니다.this.state
내 코드:
오브젝트 리터럴:이 유형은 정의되지 않은 유형과 호환되지 않습니다.형식 매개 변수를 선언하는 것을 잊으셨습니까?
State
식별자의Component
?:
다음은 문제를 일으키는 코드입니다(다른 곳에서도 발생합니다).
class ExpandingCell extends Component {
constructor(props) {
super(props);
this.state = {
isExpanded: false
};
}
어떤 도움이라도 주시면 감사하겠습니다 =)
사용하려면 상태 속성의 유형을 정의해야 합니다.
class ComponentA extends Component {
state: {
isExpanded: Boolean
};
constructor(props) {
super(props);
this.state = {
isExpanded: false
};
}
}
플로우를 사용하고 있으며,this.state
컴포넌트의constructor
:
1. 작성type
위해서this.state
type State = { width: number, height: number }
2. 이것으로 컴포넌트를 초기화합니다.type
export default class MyComponent extends Component<Props, State> { ... }
3. 이제 설정할 수 있습니다.this.state
흐름 오류 없이
constructor(props: any) {
super(props)
this.state = { width: 0, height: 0 }
}
다음 예시는 를 갱신하는 보다 완전한 예입니다.this.state
컴포넌트의 폭과 높이를 사용하여onLayout
호출됩니다.
// @flow
import React, {Component} from 'react'
import {View} from 'react-native'
type Props = {
someNumber: number,
someBool: boolean,
someFxn: () => any,
}
type State = {
width: number,
height: number,
}
export default class MyComponent extends Component<Props, State> {
constructor(props: any) {
super(props)
this.state = {
width: 0,
height: 0,
}
}
render() {
const onLayout = (event) => {
const {x, y, width, height} = event.nativeEvent.layout
this.setState({
...this.state,
width: width,
width: height,
})
}
return (
<View style={styles.container} onLayout={onLayout}>
...
</View>
)
}
}
const styles = StyleSheet.create({
container: {
display: 'flex',
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
},
})
흐름 유형으로 상태를 무시할 수 있습니다.:any
단, 이는 권장되지 않습니다.당신의 상태가 더 커지고 복잡해지면 길을 잃게 될 것이다.
class ExpandingCell extends Component {
state: any;
constructor(props) {
super(props);
this.state = {
isExpanded: false
};
}
}
삭제하다/* @flow */
in your code flite top
언급URL : https://stackoverflow.com/questions/36860349/flow-react-native-is-giving-me-errors-for-using-this-state
반응형
'programing' 카테고리의 다른 글
3레벨의 MongoDB 중첩 조회 (0) | 2023.03.05 |
---|---|
Oracle 데이터베이스에 존재하는 모든 역할을 나열하는 방법은 무엇입니까? (0) | 2023.03.05 |
워드프레스 에이잭스 요청 핸들러에서 쿠키를 설정하려면 어떻게 해야 합니까? (0) | 2023.03.05 |
org.internate 를 선택합니다.휴지 상태예외:lob 스트림에 액세스할 수 없습니다. (0) | 2023.03.05 |
각도로 HTML 텍스트 이스케이프JS 지시어 (0) | 2023.03.05 |