Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 函数和设置状态函数中的一些更改?_Reactjs_React Native_Redux - Fatal编程技术网

Reactjs 函数和设置状态函数中的一些更改?

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

我在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 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个函数来处理,可以尝试使用类似的样式。