gpt4 book ai didi

javascript - 我试图在单击时从 redux 存储加载数据并更新状态,但状态中的数据在单击时没有更新

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:00 26 4
gpt4 key购买 nike

//下面是状态

const [ showDiary, setShowDiary ] = useState({});
const { showContent, showDate, showImages } = showDiary;

//从 redux 获取数据并更新状态的代码

 const getDiary = (e, id) => {
const diary = diaries.diaries.find(diary => {
return diary._id === id
});
console.log(diary);
setShowDiary({ ...showDiary, showContent: diary.content, showDate: diary.date, showImages: diary.images })
};

//现在在控制台中,我获得了所有点击的正确数据,但状态没有更新,点击数据也没有更新。//注意:diaries.diaries是存储在redux store中的数据编辑//引入Redux Store

const mapStateToProps = state => ({
diaries: state.diary
})

export default connect(
mapStateToProps, {
deleteDiary
}
) (DiaryItem)

//显示内容的 Html

<button className="btn btn-outline-primary" data-toggle='modal' data-target='#fullcontent' onClick={e => getDiary(e, _id)}>View Full</button>
<button className="btn btn-outline-default">Edit</button>
<button className="btn btn-outline-danger" onClick={e => deletes(e, _id)}>Delete</button>

<div className="modal fade" id="fullcontent" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div className="modal-dialog" role="document">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title" id="exampleModalLabel"></h5>
<button type="button" className="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div className="modal-body" style={{height: height / 2, overflow: 'scroll'}}>
{showContent}
</div>
<div className="modal-footer">
<button type="button" className="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" className="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>

//我获取状态的 Prop

const DiaryItem = ({diary: {date, content, images, _id}, deleteDiary, diaries}) => {

最佳答案

日记 promise 吗?它需要异步吗?我觉得这就是你的问题所在。如果它是一个 Promise,我不确定你是否正确解决了它。但我怀疑它可能不是是一个 Promise,在这种情况下您就不需要异步

旁注:如果您使用 filter,但只需要第一个元素,则可以只使用 find:

const diary = diaries.diaries.find(diary => {
return diary._id === id
});

那么您不必一直说diary[0]

关于javascript - 我试图在单击时从 redux 存储加载数据并更新状态,但状态中的数据在单击时没有更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58883216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com