Anonymous
Проблема: React Native onEndEditing приводит к отключению клавиатуры, чего в данном случае я делать не хочу.
Сообщение
Anonymous » 27 июн 2024, 11:42
Я старался убедиться, что когда я нажимаю галочку на клавиатуре, она не опускается и не исчезает. Я хочу, чтобы клавиатура была видимой даже после того, как я нажму кнопку галочки для добавления. Я хочу, чтобы клавиатура исчезала только тогда, когда я снова нажимаю на экран. Но в коде, который я приведу ниже, происходит следующее:
Код: Выделить всё
import axios from 'axios';
import React, { useEffect, useState } from 'react'
import { Button, Text, StyleSheet, FlatList, TouchableOpacity, View } from 'react-native'
import { TextInput } from 'react-native-gesture-handler';
const ip = "192.168.1.2";
const ToDo = () => {
const [list, setList] = useState([]);
const [data, setData] = useState("");
const add = async () => {
try {
const res = await axios.post("http://" + ip + ":5000/save", { inputValue: data });
// console.log(res.data);
setList([...list, res.data]);
setData("");
} catch (e) {
console.log(e);
}
}
const deleteData = async (id) => {
try {
const res = await axios.delete(`http://` + ip + `:5000/todo/delete/${id}`);
tempList = list.filter((d) => d._id !== id);
setList(tempList);
} catch (e) {
console.log(e);
}
}
const deleteAll = async () => {
try {
const res = await axios.delete("http://" + ip + ":5000/todo/deleteAll");
setList([]);
} catch (error) {
console.log(error);
}
}
useEffect(() => {
const fetch = async () => {
try {
const res = await axios.get("http://" + ip + ":5000/toDo");
setList(res.data)
}
catch (e) {
console.log(e);
}
}
fetch();
}, [])
return (
setData(i)}
placeholder='Enter Text '
autoCapitalize='none'
autoComplete='none'
autoCorrect={false}
onEndEditing={add}
>
i._id}
renderItem={({ item }) => {
return (
{item.text}
deleteData(item._id)}>
Done
);
}}>
{
list.length > 0 ?
: null
}
)
}
const style = StyleSheet.create({
textInputStyle: {
alignItems: "center",
borderColor: "skyblue",
borderWidth: 1,
padding: 5,
},
textStyle: {
marginLeft: 10,
flex: 1
},
viewStyleTop: {
alignItems: "center"
},
viewStyle: {
justifyContent: "center",
alignItems: "center",
flexDirection: "row",
},
deleteButton: {
margin: 10,
borderColor: "white",
borderWidth: 1,
backgroundColor: "green",
width: 100,
},
deleteText: {
alignSelf: "center",
fontWeight: "500",
padding: 10,
color: "white",
},
})
export default ToDo
Я не пробовал ничего конкретного, кроме поиска через Stackoverflow, потому что я новичок в изучении React Native.
Подробнее здесь:
https://stackoverflow.com/questions/786 ... nt-want-to
1719477723
Anonymous
Я старался убедиться, что когда я нажимаю галочку на клавиатуре, она не опускается и не исчезает. Я хочу, чтобы клавиатура была видимой даже после того, как я нажму кнопку галочки для добавления. Я хочу, чтобы клавиатура исчезала только тогда, когда я снова нажимаю на экран. Но в коде, который я приведу ниже, происходит следующее: [code]import axios from 'axios'; import React, { useEffect, useState } from 'react' import { Button, Text, StyleSheet, FlatList, TouchableOpacity, View } from 'react-native' import { TextInput } from 'react-native-gesture-handler'; const ip = "192.168.1.2"; const ToDo = () => { const [list, setList] = useState([]); const [data, setData] = useState(""); const add = async () => { try { const res = await axios.post("http://" + ip + ":5000/save", { inputValue: data }); // console.log(res.data); setList([...list, res.data]); setData(""); } catch (e) { console.log(e); } } const deleteData = async (id) => { try { const res = await axios.delete(`http://` + ip + `:5000/todo/delete/${id}`); tempList = list.filter((d) => d._id !== id); setList(tempList); } catch (e) { console.log(e); } } const deleteAll = async () => { try { const res = await axios.delete("http://" + ip + ":5000/todo/deleteAll"); setList([]); } catch (error) { console.log(error); } } useEffect(() => { const fetch = async () => { try { const res = await axios.get("http://" + ip + ":5000/toDo"); setList(res.data) } catch (e) { console.log(e); } } fetch(); }, []) return ( setData(i)} placeholder='Enter Text ' autoCapitalize='none' autoComplete='none' autoCorrect={false} onEndEditing={add} > i._id} renderItem={({ item }) => { return ( {item.text} deleteData(item._id)}> Done ); }}> { list.length > 0 ? : null } ) } const style = StyleSheet.create({ textInputStyle: { alignItems: "center", borderColor: "skyblue", borderWidth: 1, padding: 5, }, textStyle: { marginLeft: 10, flex: 1 }, viewStyleTop: { alignItems: "center" }, viewStyle: { justifyContent: "center", alignItems: "center", flexDirection: "row", }, deleteButton: { margin: 10, borderColor: "white", borderWidth: 1, backgroundColor: "green", width: 100, }, deleteText: { alignSelf: "center", fontWeight: "500", padding: 10, color: "white", }, }) export default ToDo [/code] Я не пробовал ничего конкретного, кроме поиска через Stackoverflow, потому что я новичок в изучении React Native. Подробнее здесь: [url]https://stackoverflow.com/questions/78676395/issue-react-native-onendediting-makes-the-keypad-go-down-which-i-dont-want-to[/url]