我為學校的一個專案作業,但我遇到了一些問題。
所以這是代碼
`
import React from 'react';
import { AppBar, Container, Toolbar, Typography, MenuItem, Select, makeStyles, createTheme, ThemeProvider } from "@material-ui/core";
import { useNavigate } from "react-router-dom";
import { CryptoState } from '../CryptoContext';
//Creeare Design - Titlu
const useStyles = makeStyles(() => ({
title: {
flex:1,
color: "gold",
fontFamily: "Montserrat",
fontWeight: "bold",
cursor: "pointer",
}
}))
const Header = () => {
const classes = useStyles();
const navigate = useNavigate();
const {currency,setCurrency} = CryptoState() || {};
console.log(currency);
// TODO: Gandire sistem reintoarcere pagina principala
const handleClick = () => navigate.push('/'); // nu merge - reintoarcere la pagian principala
// FIXME: Creeare template tem?
const darkTheme = createTheme({
palette:{
primary: {
main: "#fff",
},
type: "dark",
},
});
return (
<ThemeProvider theme={darkTheme}>
<AppBar color='transparent' position='static'>
<Container>
<Toolbar>
<Typography onClick={handleClick}
className={classes.title} variant='h5'>Crypto Hunter</Typography>
<Select variant="outlined" style={{
width:100,
height:40,
marginLeft: 15,
}}
value={currency} onChange={(e) => setCurrency(e.target.value)}
>
<MenuItem value={"RON"}>RON</MenuItem>
<MenuItem value={"EUR"}>EUR</MenuItem>
<MenuItem value={"USD"}>USD</MenuItem>
</Select>
</Toolbar>
</Container>
</AppBar>
</ThemeProvider>
)
};
export default Header;
`
這就是問題所在,我不知道如何解決它們。我想要的是?
圖片在這里

請幫我!
如果我使用 RON 或 USD 或 EURO 從選擇中更改,我想 console.log 可以轉到下一步。但她給了我這個錯誤(圖片),我不知道如何解決這個問題'
編輯:
另外,從 CryptoState 我有這個代碼
const Crypto = createContext();
const CryptoContext = ({children}) => {
const [currency, setCurrency] = useState("RON");
const [symbol, setSymbol] = useState("RON");
useEffect(() => {
if(currency === "RON") setSymbol("RON");
else if(currency === "EUR") setSymbol("€");
else if(currency === "USD") setSymbol("$");
},[currency]);
return <Crypto.Provider value={{currency,symbol,setCurrency}}>{children}</Crypto.Provider>
};
export default CryptoContext;
export const CryptoState = () => {
useContext(Crypto);
}
uj5u.com熱心網友回復:
改變那條線
const {currency,setCurrency} = CryptoState() || {};
至
const [currency,setCurrency] =useState(CryptoState() || {}) ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/524581.html
標籤:javascript反应
