reactjs - 为更新突变解构对象
问题描述
我还是 Reactjs 和 Graphql 的新手。我一直在尝试将特定对象传递给变量对象以进行更新操作。我希望能够将对象分离为ID
其他值,因为它位于其他功能使用的组件内部,因此使用相同的组件也可以轻松地对其他人进行突变。
当我从这段代码中单击我的编辑选项卡时,我检索了这个特定的对象:
const handleUpdate = () => {
const updateDetails = {}
Object.keys(formDetails).forEach(k => {
updateDetails[k] = formDetails[k]?.id ? formDetails[k]?.value : formDetails[k]
})
console.log('updated data is ', updateDetails)
onUpdate(updateDetails)
}
当我console.log
返回结果时,上面的代码如下:
updated data is {__typename: "NewsType", id: "c67ea940-298f-4d27-8661-57630f8812a5", name: "Gary"}
我的onUpdate
函数在另一个文件中定义为 prop,如下所示:
const onUpdate = async (items) => {
console.log('values to insert is ', items)
try {
const { data } = await update({ variables: { [inputKey]: items, [inputID]: items.id } })
if (Object.values(data)[0].ok) {
handleModal()
}
} catch (error) {
console.log(error)
}
}
根据我们正在使用的功能,其中[inputKey]
和作为道具传递,但在这种情况下,值分别是和。[inputID]
news
id
我的更新突变如下:
const [update] = useMutation(updateOperation)
其中 myupdateOperation
也作为道具传入,以使其更通用,以供其他功能使用。
我传递给我updateOperation
的 grapqhql 查询如下所示:
export const UPDATE_NEWS = gql`
mutation updateNews($news: NewsUpdateGenericType!, $id: ID!){
updateNews(news: $news, id: $id) {
ok
}
} `
我尝试了很多概念,比如使用
Object.keys(values).foreach((id, value) => {
....})
和Object.entries(values)
。
我真的很难让这个更新功能发挥作用......任何关于出路的想法都将受到高度赞赏
解决方案
我已经能够将我的对象分成 ID 和其他值。
我使用了这个概念
const {id, ...otherValues} = items
这对我有用......感谢@Ziwon的努力
推荐阅读
- html - 如何保留原始html并在页面上使用React
- git - Azure DevOps 中的 git 钩子脚本
- java - 如何使用 Java 更新 xml 中的值
- android - Android Studio Broadcast接收很慢
- axios - 如何为多个 API 设置 Axios 和 Nuxt 运行时配置?
- python - Paramiko 在 Windows 上无法从 ssh-agent 中找到密钥
- arrays - 我想使用 map () 函数将一组 url 传递给按钮。但是在按钮单击时我得到了对象,但它没有将我导航到确切的页面
- variables - Ansible:如何解决变量扩展和 vars 之间的差异
- javascript - 如何根据 JavaScipt 中的键转换对象?
- android - 谷歌玩游戏在安卓上登录错误