Reactjs 函数和设置状态函数中的一些更改?
我在reactjs中做这些事情,但当我开始学习react native时,它不起作用。你能告诉我如何执行这些任务吗Reactjs 函数和设置状态函数中的一些更改?,reactjs,react-native,redux,Reactjs,React Native,Redux,我在reactjs中做这些事情,但当我开始学习react native时,它不起作用。你能告诉我如何执行这些任务吗 import React, {Component} from 'react'; import {Text, View, Form } from 'react-native'; import { FormLabel, FormInput, FormValidationMessage, Button } from 'react-native-elements'; class Head
import React, {Component} from 'react';
import {Text, View, Form } from 'react-native';
import { FormLabel, FormInput, FormValidationMessage, Button } from 'react-native-elements';
class Header extends Component {
constructor(props){
super(props);
this.state = {
email : '',
password : '',
};
}
inputData = event => {
this.setState({
[event.target.name]:event.target.value
});
}
submitData = event => {
event.preventDefault();
console.log(this.state);
}
render(){
return(
<View>
<Text style= {{fontSize : 40, marginTop : 50, marginLeft : 100, fontWeight : 'bold'}}>
New App!
</Text>
<FormLabel>Email</FormLabel>
<FormInput name='email' type='email' onChange={this.inputData}/>
<FormLabel>Password</FormLabel>
<FormInput name='password' type='password' onChange={this.inputData}/>
<Button title='Submit' onPress={this.submitData} style={{marginTop:20}}/>
</View>
);
}
}
export default Header;
import React,{Component}来自'React';
从“react native”导入{Text,View,Form};
从“react native elements”导入{FormLabel、FormInput、FormValidationMessage、Button};
类头扩展组件{
建造师(道具){
超级(道具);
此.state={
电子邮件:“”,
密码:“”,
};
}
inputData=事件=>{
这是我的国家({
[event.target.name]:event.target.value
});
}
submitData=事件=>{
event.preventDefault();
console.log(this.state);
}
render(){
返回(
新应用程序!
电子邮件
密码
);
}
}
导出默认标题;
正如你在这里看到的,当我使用onChange时,值没有被赋值
我知道如何使用onChangeText,而且它也很有效,但是你能告诉我为什么上面的方法不起作用,如果不起作用,还有什么重要的原因吗?你可以尝试这种方法,使用
onChangeText
而不是onChange
import React, {Component} from 'react';
import {Text, View, Form } from 'react-native';
import { FormLabel, FormInput, FormValidationMessage, Button } from 'react-native-elements';
class Header extends Component {
constructor(props){
super(props);
this.state = {
email : '',
password : '',
};
}
inputData = event => {
this.setState({
[event.target.name]:event.target.value
});
}
inputEmail = text => {
this.setState({
email: text
})
}
inputPassword = text => {
this.setState({
password: text
})
}
submitData = event => {
event.preventDefault();
console.log(this.state);
}
render(){
return(
<View>
<Text style= {{fontSize : 40, marginTop : 50, marginLeft : 100, fontWeight : 'bold'}}>
New App!
</Text>
<FormLabel>Email</FormLabel>
<FormInput value={this.state.email} name='email' type='email' onChangeText={this.inputEmail}/>
<FormLabel>Password</FormLabel>
<FormInput value={this.state.password} name='password' type='password' onChangeText={this.inputPassword}/>
<Button title='Submit' onPress={this.submitData} style={{marginTop:20}}/>
</View>
);
}
}
export default Header;
import React,{Component}来自'React';
从“react native”导入{Text,View,Form};
从“react native elements”导入{FormLabel、FormInput、FormValidationMessage、Button};
类头扩展组件{
建造师(道具){
超级(道具);
此.state={
电子邮件:“”,
密码:“”,
};
}
inputData=事件=>{
这是我的国家({
[event.target.name]:event.target.value
});
}
inputEmail=文本=>{
这是我的国家({
电子邮件:文本
})
}
inputPassword=文本=>{
这是我的国家({
密码:text
})
}
submitData=事件=>{
event.preventDefault();
console.log(this.state);
}
render(){
返回(
新应用程序!
电子邮件
密码
);
}
}
导出默认标题;
因此,对于React Native,有一个onChangeText
,它正在工作,但是onChange
在您的代码中不工作?这就是问题所在吗?是的@devserkan然后尝试event.nativeEvent.name
和event.nativeEvent.value
而不是event.target.name
和event.target.value
@devserkan您的解决方案不起作用,请您描述更多。我不知道React-Native,这就是我无法直接提供解决方案的原因:)但是,我了解到它不是event.nativeEvent.value
,而是event.nativeEvent.text
。但是,我找不到一种方法来获取名称值。所以,像我一样,你可以稍微挖掘一下谷歌:)我正在世博会上尝试,我可以看到event.nativeEvent.text
起作用。我不想创建多个函数。因为我知道你提到的上述方法是有效的。@yashChoksi你说的多功能是什么意思?这个库react原生元素只允许onChangeText,不允许onChange,因此它是特定于库的。如果您想使用onChange,那么请使用普通输入元素或其他支持onChange的库。这个答案解决了你的OP问题。请接受,如果您有任何其他问题,请将其作为一个单独的问题发布Yes@请三思,react原生元素的FormInput只有onChangeText(参数为文本值,没有名称)。如果您想使用1个函数来处理,可以尝试使用类似的样式。