我看到字符串引用是遗留的反应: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-string-refs.md
但我在我的组件中遇到此流量错误,并且不知道如何解决它:
[flow] Cannot assign `c` to `this.loginform` because property `loginform` is missing in `LoginScreen` [1]. (References: [1])
我的组件:
/**
* @flow
*/
// ... imports, tcomb form model, etcetera ...
class LoginScreen extends React.Component<*> {
onPress() {
var creds = this.loginform.getValue();
orbRequestLogin(this.props.navigation, creds, '/oauth/token');
}
render() {
return (
<Wrap bgcolor="white">
<Content>
<KeyboardAvoidingView behavior="padding">
<Form ref={(c) => { this.loginform = c; }} type={User} options={options} />
<TouchableHighlight style={styles.button} onPress={this.onPress.bind(this)}>
<Text style={styles.buttonText}>Log in</Text>
</TouchableHighlight>
</KeyboardAvoidingView>
</Content>
</Wrap>
);
}
}
export default withNavigation(LoginScreen);
答案 0 :(得分:3)
您需要在班级正文中为loginform
提供注释。那就是:
class LoginScreen extends React.Component<*> {
loginform: Form
流程文档的Class Fields部分对此进行了描述。