다음과 같은 경우가 있습니다.React 네이티브는 입력 포커스가있는 동안 뷰의 일부를 조건부로 렌더링합니다.
function MyComponent() {
return (
<View>
<TextInput ref={ref => (this.input = ref)} style={styles.input} />
{this.input.isFocused() && <Text>Hello World</Text>}
</View>
);
}
이 실제로 잘 작동하지만 난 경고를 얻을 :
를 MyComponent가 렌더링 내부 findNodeHandle에 액세스합니다. 은 순수한 함수 여야합니다.
텍스트 블록을 조건부로 렌더링하고이 경고를 피하는 방법은 무엇입니까? 당신은 렌더링() 메소드에서 심판을 참조 할 수 없습니다
class MyComponent extends React.Component {
state = { isFocused: false }
handleInputFocus =() => this.setState({ isFocused: true })
handleInputBlur =() => this.setState({ isFocused: false })
render() {
const { isFocused } = this.state
return (
<View>
<TextInput
onFocus={this.handleInputFocus}
onBlur={this.handleInputBlur}
/>
{isFocused && <Text>Hello World</Text>}
</View>
)
}
}
왜'{this.state.isFocused && Hello World }'을하지 않으십니까? –
TheJizel
그것은 똑같은 것이고, 나는 항상 반환 전에 주와 소품에서 변수를 추출합니다. 그것은 단지 대회입니다. – Freez