主要问题:我想发送日期到商店,但我只实现了一部分,因为rank发送的是null或undefined。
const [ranking, setRanking] = useState<number | null>(2);
const RankHandler = (item, ranking) => {
dispatch(
rankAdd({
id: item.id,
rank: ranking
})
);
};
<Rating
name="simple-controlled"
value={ranking}
onClick={(event, newValue) => {
setRanking(newValue);
console.log("rating", ranking);
RankHandler(props.id)
}}
/>
我收到一个错误,我从受控状态更改为不受控状态,这是一个大问题等。
1条答案
按热度按时间fcwjkofz1#
您有一些变量命名重复,并且在调用RankHandler时,不能保证状态已经更新。您可以做的是将新值传递给RankHandler本身。此外,我建议将参数名从
ranking
重命名为updatedRanking
或类似的名称。关于
props.id
,我有一点困惑,你把它传递给RankHandler,在RankHandler里你又得到了它的id
。所以它应该是props.id.id
。请确保它是正确的值。因为你只添加了这部分代码,我不能对此发表评论。而对于
console.log("rating", ranking)
,它不会显示更新的状态,因为到console.log()
打印时,状态尚未更新。希望你收到了,有什么问题尽管告诉我。