我有以下代码:
import { useState } from "react";
import Wheel from "../components/wheel/Wheel";
import Countdown from "../components/countdown/Countdown";
import Bets from "../components/bets/Bets";
import Input from "../components/input/Input";
import styles from "./Roulette.module.css";
const Roulette = () => {
const [roll, setRoll] = useState(true);
const [count, setCount] = useState(10);
const [bets, setBets] = useState({ red: [{name: 'test' , amount: '400$'}], green: [],black: []});
const handleRoll = () => {
setBets(true);
}
const countdownDone = () => {
setRoll(false);
setCount(true);
};
const rollDone = () => {
setRoll(true);
setCount(false);
};
const updateRoll = () => {
setRoll(!roll);
};
return (
<div className={styles.container}>
<div className={styles.title}>ROULETTE</div>
<Countdown count={count} done={countdownDone} />
<Wheel roll={updateRoll} done={rollDone} />
<Input/>
<Bets bets={handleRoll}/>
</div>
);
};
export default Roulette;
然后我想在BetTable 中绘制地图
import { useState } from "react";
import Wheel from "../components/wheel/Wheel";
import Countdown from "../components/countdown/Countdown";
import Bets from "../components/bets/Bets";
import Input from "../components/input/Input";
import styles from "./Roulette.module.css";
const Roulette = ({name, amount}) => {
const [roll, setRoll] = useState(true);
const [count, setCount] = useState(10);
// const [bets, setBets] = useState({ red: [{name: 'test' , amount: '400$'}], green: [],black: []});
// state={
// red: [{name: 'test' , amount: '400$'}],
// green: [],
// black: []
// }
const getBets = () => {
var red = [{name: 'test' , amount: '400$'}],
var green = [],
var black = []
}
return getBets();
]
// const handleRoll = () => {
// setBets(true);
// }
function countdownDone() {
setRoll(false);
setCount(true);
}
const rollDone = () => {
setRoll(true);
setCount(false);
};
const updateRoll = () => {
setRoll(!roll);
};
return (
<div className={styles.container}>
<div className={styles.title}>ROULETTE</div>
<Countdown count={count} done={countdownDone} />
<Wheel roll={updateRoll} done={rollDone} />
<Input/>
<Bets bets={bets}/>
</div>
);
};
export default Roulette;
我试图实现您所看到的,但通过在控制台上检查我的错误,映射没有正确完成,我只是有一块空白。也许我在考虑从const改为class,并使用道具。但我确信这不是的唯一途径
p.S我也忘了添加BetClass。
import styles from "./Bets.module.css"; // import styles from "./Bets.module.css";
const Bets = () => {
return(
// <table>
// <tbody>
// <tr>
<div className={styles.table}>
<div className={styles.tablerow}>
<BetTable color='RED' bets={Bets.red}/>
<BetTable color='GREEN' bets={Bets.green}/>
<BetTable color='BLACK' bets={Bets.black}/>
</div>
</div>
);
};
export default Bets;
您的代码仍然没有意义。。。例如,你有这个getBets()
:
const getBets = () => {
var red = [{name: 'test' , amount: '400$'}],
var green = [],
var black = []
}
// These two lines look like an error
return getBets();
]
这里的return
与任何东西都不匹配,还有一个额外的括号与任何地方都不匹配。
如果你回到你已经注释掉的代码:
const [bets, setBets] = useState({
red: [{name: 'test' , amount: '400$'}],
green: [],
black: []
});
并将bets
传递给Bets
组件:
<Bets bets={bets}/>
然后,您所要做的就是修复Bets
组件,将bets
作为属性:
const Bets = ({ bets }) => {
return(
<div className={styles.table}>
<div className={styles.tablerow}>
<BetTable color='RED' bets={bets.red}/>
<BetTable color='GREEN' bets={bets.green}/>
<BetTable color='BLACK' bets={bets.black}/>
</div>
</div>
);
};
不确定这是否是你想要的;同样,如果代码/问题不更清楚,就很难提供帮助。