<Dialog.Container visible={this.state.dialogSendEmailVisible}>
<Dialog.Title>Password Recovery</Dialog.Title>
<Dialog.Input label="Email"></Dialog.Input>
<Dialog.Button label="OK" onPress={this.handleSendEmail} />
</Dialog.Container>
我有一个简单的对话框,用于密码恢复。我不是一个有限元开发人员,我没有找到我如何才能传递在电子邮件字段键入的值到handleSendEmail函数。Github和npm页面没有任何示例。Github页面:https://github.com/mmazzarolo/react-native-dialog
PS:这可以是一个非常反应的本地基本功能,但我没有找到一种方法…
发布于 2018-09-28 22:46:20
假设对话框输入/按钮扩展了React Native自己的,那么你可以调用:
onSubmitEditing and onChangeText
从文档中:
onSubmitEditing
按下文本输入的提交按钮时调用的
回调。如果指定了multiline={true},则无效。
TYPE REQUIRED
function No
和
onChangeText
文本输入的文本更改时调用的
回调。更改的文本将作为参数传递给回调处理程序。
TYPE REQUIRED
function No
它的意思如下:
<Dialog.Input label="Email"
onChangeText={email => this.setState({email})}
value={this.state.email}
onSubmitEditing={
(event) => this.doSomethingWithSubmit(event)
}
>
</Dialog.Input>
更新
所以我已经测试过了,它的工作原理如下--我使用的是Typescript,所以只要删除类型( : string
)就行了。
Render中的
return (
<View>
<View>
<Button onPress={this.showDialog}>
<Text>Show Dialog</Text>
</Button>
<Dialog.Container visible={true}>
<Dialog.Title>Password Recovery</Dialog.Title>
<Dialog.Input label="Email" onChangeText={(email : string) => this.handleEmail(email)}
></Dialog.Input>
<Dialog.Button label="OK" onPress={this.handleSendEmail} />
</Dialog.Container>
</View>
</View>
)
handleEmail:
private handleEmail = (email : string) => {
console.log("email");
console.log(email);
}
结果:
更进一步的
作为这个项目的附注,我注意到当我使用Live reload时-对话框从来没有重新呈现过,而是在旧的对话框上呈现。我会考虑到这一点。也许这是我的环境,但其他一切都很好。
https://stackoverflow.com/questions/52557142
复制相似问题