Reactjs 如何检查输入是否清晰(react redux)

Reactjs 如何检查输入是否清晰(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

我试图创建一个不和谐的克隆,当我点击回车键时,输入为空,它会显示一条空消息,你知道如何防止这种情况发生吗?我是新的反应,firebase和redux

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)到目前为止,你试图做些什么来防止这种情况发生?我试了很多次,但都不管用,我是说真的很多。到目前为止,你试图做些什么来防止这种情况发生?我试了很多次,但都不管用,我是说真的很多。是的,但必须重要的是:你明白为什么吗?是的,但必须重要的是:你明白为什么吗?