Я долго искал ответ, но не нашел. У меня есть почтовый метод с Axios. Значения из ввода не переходят в состояние.
class LoginForm extends Component {
constructor(props){
super(props);
this.state = {firstName:'', lastName: '', number: ''};
}
render(){
return (
<View>
<Item floatingLabel>
<Label>Ваше имя</Label>
<TextInput Value = {this.state.firstName} onChangeText = {(firstName) => this.setState({firstName})}/>
</Item>
<Item floatingLabel>
<Label>Ваша фамилия</Label>
<TextInput value = {this.state.lastName} onChangeText = {(lastName) => this.setState({lastName})}/>
<Text>{this.state.firstName}</Text>
</Item>
<Item floatingLabel>
<Label>Номер телефона</Label>
<TextInput value = {this.props.number} onChange = {(number) => this.setState({number})}/>
</Item>
<Button block style = {{marginTop:50}}
onPress = {() => {
let data = {
firstname: this.state.firstName,
lastname: this.state.lastName,
number: this.state.number
}
axios.post('http://10.0.2.2:3000/user_add',data)
}}>
<Text>Отправить</Text>
</Button>
</View>
);
}
}
export default LoginForm;и
app.post('/user_add',function(req,res){
var firstname = req.body.firstname;
var lastname = req.body.lastname;
var number = req.body.number;
var values = [firstname,lastname,number];
console.info(values);
connection.query('INSERT INTO users (firstname, lastname, number) VALUES (?)',[values],function(err){
if (!err) {
console.info("User added!")
res.send(firstname,lastname,number);
} else {
console.info(err);
}
})
});Работает, но некорректно. Пользователь добавляет, но без моих значений он добавляет только '', '', '' Пытался дать несколько советов: добавил события, попытался поместить значения в массивы, но не работает. Результат: добавить значения в базу данных



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны использовать TextInput следующим образом:
onChangeText = {(firstName)=>this.setState({firstName})}
и повторите то же самое для lastName и number
Callback that is called when the text input's text changes. Changed text is passed as an argument to the callback handler.
https://facebook.github.io/react-native/docs/textinput#onchangetext
это приложение на Android, и это усложняет задачу
Он по-прежнему ссылается на e.target.value, которого больше не должно быть.
Я изменил e.target
Я заметил две опечатки: 1 - первая опора TextInput: опора - это значение, а не значение 2 - последняя опора TexInput: onChange должно быть onChangeText. Все еще не уверен, что это решит проблему
Я использую:
import {TextInput} from 'react-native';
<TextInput
editable = {true}
placeholder = "Write here"
onChangeText = {text => this.setState({ inputText: text })}
value = {this.state.inputText}
/>
Это отлично работает для меня. Обратите внимание, что вы написали «Value» с большой буквой V в первом TextInput с firstName. поменяй на строчную, может это поможет.
ввод связан с DOM, в то время как этот вопрос связан с реагирующим родным
Извините, не заметил. починил это.
Можете ли вы использовать
console.info(this.state)внутриsubmitFormили использовать react-dev-tools для проверки состояния компонента перед нажатием кнопки отправки?