嗨,专家们,我是React-native的新手,我们将不胜感激。
我需要调用在组件中全局声明的方法名称openModel(),并且我有一个renderInput方法,该方法呈现在Field标记中传递的每个Input。当openModel()在其Inputs上的renderInput上调用Focus时。错误显示_this4.openModel不是函数。它清楚地了解到,由于多次调用renderInput方法,因此此值正在递增。 我该如何解决 ? 下面是短代码
class AddPatientForm extends Component {
constructor(props) {
super(props);
openModel = () => {
this.refs.bGroup.open();
}
renderInput({ input, label, type, meta: { touched, error, warning } }) {
return (
<View style={{ flexDirection: "row", height: 25, paddingRight: 5, }}>
<Input
ref={c => { this.textInput = c }}
returnKeyType={input.name === "Password" ? "" : "next"}
onSubmitEditing={() => { this.textInput._root.focus(); }}
blurOnSubmit={false}
secureTextEntry={input.name === "Password"}
{...input}
onFocus={() => this.openModel()}
keyboardType={input.name === "mobile" || input.name === "age" ? "numeric" : "default"}
autoCapitalize="none"
/>
</View>
);
}
<Field name="patientId" component={this.renderInput} type="" validate={[alphaNumeric,required]} />
}
答案 0 :(得分:0)
请从openModel()
中删除您的constructor
函数,如果您在constructor
之外定义函数,则将为您工作
openModel = () => {
this.refs.modal2.open();
}
您可以调用函数并在类内部进行定义,然后直接使用this.openModel();
如果您具有全局功能并在类外部进行定义,则无需使用this
关键字。
答案 1 :(得分:0)
您可以像这样简单地写OpenModel()
-
openModel() {
this.refs.bGroup.open();
}
希望它能起作用!