Попробуйте что-то из этого:
import React from "react";
import Name from './Name' //Это компонент к которому будет происходить обращение из main, то есть App.jsx или App.js. Таких компонентов может быть сколько угодно
import { useState } from 'react';
import { createContext } from 'react';
export const AppContext = createContext();
function App() {
const [newPost, setNewPost] = useState(false);
return (
newPost,
setNewPost
}}>
);
}
//Компонент Name
import React from "react";
import { useState, useContext } from 'react';
import { AppContext } from "./App";
function Name() {
const {newPost, setNewPost} = useContext(AppContext)
const handlePublish = () => {
setNewPost(true)//В этот момент значение newPost изменится из false на true и в mutate newPost будет передан со значением true
mutate({newPost})
}
};
return (
<>
//Здесь что-то должно выполняться
>
)
}
export default Name;
Можно вообще обойтись без АррContext и решить все в одном компоненте, просто данные будут видны только внутри этого компонента)
import React from "react";
import { useState} from 'react';
function Name() {
const [newPost, setNewPost] = useState(false);
const handlePublish = () => {
setNewPost(true)//В этот момент значение newPost изменится из false на true и в mutate newPost будет передан со значением true
mutate({newPost})
}
};
return (
<>
//Здесь что-то должно выполняться
>
)
}
export default Name;
Еще один вариант:
import React from "react";
import { useState} from 'react';
function Name() {
const [newPost, setNewPost] = useState(false);
const [is_published, setIs_published] = useState(false)
const handlePublish = () => {
setNewPost(true)//В этот момент значение newPost изменится из false на true и в mutate newPost будет передан со значением true
mutate({newPost})
setIs_published(true);
//Можно попробовать так: setIs_published(!is_published);
}
};
return (
<>
//Здесь что-то должно выполняться
>
)
}
export default Name;
В Mutate //Только нужно передать туда параметры:
interface MutationParams {
newPost: {
is_published
}
//is_published ? {newPost} : !is_published
}
Понятное дело что все вышеописанное - просто образец...