@RageLord

Почему при нажатии на кнопку ничего визуально не меняется?

Пишу приложение на wails (golang + react).
Делаю кнопку сброса настроек.
Код родителя выглядит следующим образом:
export default function Settings() {

    const [generalSettings, setGeneralSettings] = useState(null);
    const [proxySettings, setProxySettings] = useState(null);

    useEffect(() => {

        async function fetchSettings() {
            const settings = await GetGeneralSettings();
            console.log(settings.generalSettings)
            setGeneralSettings(settings.generalSettings);
            setProxySettings(settings.proxySettings);
        }

        fetchSettings();

    }, []);

    if (!generalSettings || !proxySettings) {
        return (
        <div className='size-full bg-[#177FB6] dark:bg-neutral-800'>
            <LoadingWindow/>
        </div>
        )
    }


    return (
        <div className="size-full bg-[#177FB6] dark:bg-neutral-800 flex flex-col items-center">
            <header>
                <AppInfo/>
            </header>
            <div>
                <div className="h-[33rem] w-[66rem] bg-blue-50 dark:bg-zinc-900 rounded-xl flex flex-col items-center">
                    <SettingsBlocks
                        setGeneralSettings={setGeneralSettings}
                        setProxySettings={setProxySettings}
                        proxySettings={proxySettings}
                        generalSettings={generalSettings}/>
                    <div className='flex flex-col gap-y-2.5 pt-16'>
                        <SaveSettingsButton
                            generalSettings={generalSettings}
                            proxySettings={proxySettings}/>
                        <ResetSettingButton
                            setGeneralSettings={setGeneralSettings}
                            setProxySettings={setProxySettings}
                            />
                    </div>
                </div>
            </div>
        </div>
    )
}


Код ResetSettingsButton:
function ResetSettingButton({ setGeneralSettings, setProxySettings }) {

    const [successMessage, setSuccess] = useState(false);

    const defaultGeneralSettings = {
        threadCount: 20
    };

    const defaultProxySettings = {
        useProxy: false,
        proxyType: "",
        proxyFilePath: ""
    };

    const resetSettings = () => {

        ChangeSettingsValue("generalSettings", defaultGeneralSettings);
        ChangeSettingsValue("proxySettings", defaultProxySettings);

        setGeneralSettings(defaultGeneralSettings);
        setProxySettings(defaultProxySettings);

        setSuccess("Настройки сброшены")
    }

    return (
        <label className='inline-flex w-80 h-11 cursor-pointer'>
            <button className='hidden size-full'></button>
            <span className='group size-full flex items-center justify-center gap-x-2.5 text-cyan-600 text-sm font-semibold bg-white rounded-full hover:bg-rose-600 hover:text-white transition-colors' onClick={resetSettings}>
            Сбросить
            </span>
            {successMessage && <SuccessPopup message={successMessage} onSuccess={setSuccess}/>}
        </label>
    )
}


Но при нажатии на кнопку файл настроек изменяется, но визуально на экране ничего не меняется, хотя я ведь использую стейт из родителя. Функции GetGeneralSettings и ChangeSettingsValue - функции из бека, они абсолютно точно работают. Если перейти на другое окно и вернуться в настройки - настройки становятся дефолтными, но мне нужно, чтобы они менялись непосредственно по нажатии на кнопку и я совсем не понимаю, что я делаю не так.
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы