Son casi las 3 a.m. y simplemente no entiendo cómo cambiar los parámetros API para language_code , quiero cambiarlo en 'en' y 'ru' , y tal vez algunos otros, pero incluso la lógica con los parámetros no funciona.
Lo probé con ganchos y almacenamiento local, pero se vuelve a procesar todo excepto la solicitud de API
const [language, setLanguage] = React.useState('en') const fetchData = React.useCallback(() => { axios({ // other logic (there is key :) ) }, "params": { "language_code": `${language}` } }) .then((response) => { setResponseData(response.data) }) .catch((error) => { console.log(error) }) }, []) React.useEffect(() => { fetchData() }, [fetchData]) // here i'm fetch data <button className='buttondata' type='button' onClick={fetchData}>Click for Data</button>Tal vez simplemente no entiendo algo con el montaje o trabajo con API
He hecho una solución extraña, tal vez necesite a alguien en el futuro. Simplemente guarde el estado en localStorage y llámelo con useState a través de los botones de opción y el operador de propagación:
const saved = localStorage.getItem("language"); const initialValue = JSON.parse(saved) || 'en'; const [language, setLanguage] = React.useState(initialValue || 'en'); localStorage.setItem("language", JSON.stringify(language)); console.log(language) const handleChange = (event) => { setLanguage(event.target.value); window.location.reload(true); }; const controlProps = (item) => ({ checked: language === item, onChange: handleChange, value: item, name: 'color-radio-button-demo', inputProps: { 'aria-label': item }, });Hay una función de controlProps con botones de radio:
<Radio {...controlProps('en')} /> <Radio {...controlProps('ru')} color="secondary" /> <Radio {...controlProps('de')} color="success" /> <Radio {...controlProps('fr')} color="default" /> <Radio {...controlProps('ru')} sx={{ color: pink[800], '&.Mui-checked': { color: pink[600], }, }} />