Reactjs 如何检查输入是否清晰(react redux)
我试图创建一个不和谐的克隆,当我点击回车键时,输入为空,它会显示一条空消息,你知道如何防止这种情况发生吗?我是新的反应,firebase和reduxReactjs 如何检查输入是否清晰(react redux),reactjs,firebase,react-redux,Reactjs,Firebase,React Redux,我试图创建一个不和谐的克隆,当我点击回车键时,输入为空,它会显示一条空消息,你知道如何防止这种情况发生吗?我是新的反应,firebase和redux const user = useSelector(selectUser); const channelId = useSelector(selectChannelId); const channelName = useSelector(selectChannelName); const [input, setInput] = useState(&q
const user = useSelector(selectUser);
const channelId = useSelector(selectChannelId);
const channelName = useSelector(selectChannelName);
const [input, setInput] = useState("");
const [messages, setMessages] = useState([]);
useEffect(() => {
if (channelId) {
db.collection('channels')
.doc(channelId)
.collection('messages')
.orderBy('timestamp', 'desc')
.onSnapshot((snapshot) =>
setMessages(snapshot.docs.map((doc) => doc.data()))
);
}
}, [channelId])
const sendMessage=(e)=>{
e、 预防默认值()
}
返回(
{messages.map((message)=>(
))}
setInput(e.target.value)}
占位符={`Message}${channelName}}
/>
发送消息
)
}
导出默认聊天只需检查其中是否有值。空字符串不可用,因此可以在一行中检查它
<input onChange={e => e.target.value && setInput(e.target.value)}/
e.target.value&&setInput(e.target.value)}/
但在您的情况下,您可能会在输入时发送表单。所以,您可以通过设置验证模式来阻止发送带有空输入的表单
<input pattenr=".+" />
或者在sumbmit函数中进行验证。只需检查其中是否有值。空字符串不可用,因此可以在一行中检查它
<input onChange={e => e.target.value && setInput(e.target.value)}/
e.target.value&&setInput(e.target.value)}/
但在您的情况下,您可能会在输入时发送表单。所以,您可以通过设置验证模式来阻止发送带有空输入的表单
<input pattenr=".+" />
或者在sumbmit函数中进行验证。如果输入为空,则只需防止提交函数调用firebase即可
const sendMessage = (e) => {
e.preventDefault();
if (input.length <= 0) return; // This will end the function here if your input is empty
db.collection('channels').doc(channelId).collection('messages').add({
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
message: input,
user: user,
});
setInput('')
}
const sendMessage=(e)=>{
e、 预防默认值();
if(input.length如果输入为空,您需要做的就是阻止submit函数调用firebase
const sendMessage = (e) => {
e.preventDefault();
if (input.length <= 0) return; // This will end the function here if your input is empty
db.collection('channels').doc(channelId).collection('messages').add({
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
message: input,
user: user,
});
setInput('')
}
const sendMessage=(e)=>{
e、 预防默认值();
if(input.length)到目前为止,你试图做些什么来防止这种情况发生?我试了很多次,但都不管用,我是说真的很多。到目前为止,你试图做些什么来防止这种情况发生?我试了很多次,但都不管用,我是说真的很多。是的,但必须重要的是:你明白为什么吗?是的,但必须重要的是:你明白为什么吗?