[英]How can I call a function from another component react
I am trying to call a function from a different component but when I console.log('hi') it appear but it didn't call the messageContext
.我试图从不同的组件调用 function 但是当我 console.log('hi') 它出现但它没有调用
messageContext
。
Here is my follwing code from Invitees.js
:这是我来自
Invitees.js
的以下代码:
const [showPreview, setShowPreview] = useState(false);
const toggleUserPreview = () => {
setShowPreview(!showPreview);
};
{showPreview && (
<ResultsWrappers togglePreview={toggleUserPreview}>
<UserPreview
userInfo={applicant}
skillStr={applicant.Skills}
togglePreview={toggleUserPreview}
/>
</ResultsWrappers>
)}
Here is the component have the function I want to call UserPreview.js
:这是具有 function 我想调用
UserPreview.js
的组件:
import { useMessageContextProvider } from "../context/MessageContext";
const UserPreview = ({ userInfo, skillStr, togglePreview }) => {
const messageContextProvider = useMessageContextProvider();
const messageUser = () => {
togglePreview();
messageContextProvider.updateActiveUserToMessage(userInfo);
console.log('hi');
};
...
}; };
Here is my messageContext:这是我的消息上下文:
import { createContext, useContext, useState } from "react";
const messageContext = createContext();
export const MessageContextProvider = ({ children }) => {
const [activeUserToMessage, setActiveUserToMessage] = useState({});
const [isOpenMobileChat, toggleMobileChat] = useState(false);
const updateActiveUserToMessage = (user) => {
setActiveUserToMessage(user);
};
return (
<messageContext.Provider
value={{
updateActiveUserToMessage,
activeUserToMessage,
isOpenMobileChat,
toggleMobileChat,
}}
>
{children}
</messageContext.Provider>
);
};
export const useMessageContextProvider = () => {
return useContext(messageContext);
};
When the messageContext
called it should open the chatbox like this:当
messageContext
调用它时,它应该像这样打开聊天框:
The code you showing is not enough to say it for 100%, but it seems like toggleUserPreview
- function called twice, so it reverted to original boolean value.您显示的代码不足以说 100%,但似乎
toggleUserPreview
- function 调用了两次,因此它恢复为原始 boolean 值。
One time as <ResultsWrappers togglePreview={toggleUserPreview}/>
一次作为
<ResultsWrappers togglePreview={toggleUserPreview}/>
and second time as <UserPreview togglePreview={toggleUserPreview}/>
.第二次作为
<UserPreview togglePreview={toggleUserPreview}/>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.