反应功能组件子调用父项方法,无法访问函数内部的父项状态



我有一个父组件和一个作为按钮的子组件列表,单击它会调用父组件中的一个方法。在这种方法中,它检查父母的状态,并根据这一点进行工作。问题是,当方法被调用时——突然之间,它从其父级获得的道具被取消了好友关系。这是母组件

const PaymentsInfo = (props) => {
const paymentsList = useSelector((state) => state.payments.paymentsForDonor)
const [payments, setPayments] = useState()
const [showMessage, seShowMessage] = useState(
useEffect(() => {
if (paymentsList.length > 0) {
const payments = paymentsList.map(payment => {

return <div key={payment.PaymentsID}><TextButton onClick={() => 
showMessageHandler(payment)}>View Details</TextButton>
<TransactionInfo
PaymentsID={payment.PaymentsID}
campaign={payment.CampaignName}
subCampaign={subCampaign}
organization={payment.OrganizationName}
solicitor={payment.SolicitorName}
/>
</div>
})
setPayments(payments)
}
}, [paymentsList])
const showMessageHandler = (payment) => {
if(props.wasChanged){
setShowMessage(payment)
return;
}  
}

return (
<Fragment>
<div>
{payments}
</div>
{showMessage && <ChangesMessageBox />}
</Fragment>
)

调用了方法-showMessageHandler,但未定义props.wasChanged。如果我检查props.wasChanged,它在调用该函数之前的最后一次呈现是真的,并且在该函数中它的未定义

我找到了这个问题的解决方案:为什么可以';我是否从子组件事件处理程序中看到父状态?。我在父组件中添加了一个状态,当子组件调用父方法时会更新该状态,并在该状态更新时调用useEffect,完成该方法应该完成的工作

最新更新