选择React JS时未定义Checked Items



我正在尝试读取所有选中的项,并将该值序列化为selectedTransaction

问题是当我检查第一项时,它抛出undefined错误&对于第二项的选择,它在控制台日志中显示1个数组项。

但如果我控制台记录selectedTransactions,它会显示正确的项值。

我在这里做错了什么。请帮助

const [selectedTransaction, setSelectedTransaction] = useState<any>();
const handleCheckboxOnChange = (
transactionDetails: TransactionDetail,
isCheckeds: boolean,
) => {
const selectedTransactions = transactionsList.transactionDetails
.filter((item: TransactionDetail) => item.isChecked === true);
setSelectedTransaction(selectedTransactions);
console.log(selectedTransactions); // Shows 1 selected Item 
console.log(selectedTransaction); // Shows undefined 
})

状态没有立即更新(异步和批处理(,这就是为什么您得到undefined或以前的状态

setSelectedTransaction(selectedTransactions);
console.log(selectedTransactions); // Shows 1 selected Item 
console.log(selectedTransaction); // Shows undefined 

使用useEffect在数据更改时控制状态。给依赖数组[selectedTransaction]

useEffect(()=>{
console.log(selectedTransaction); 
}, [selectedTransaction]);

最新更新