gpt4 book ai didi

reactjs - Apollo react 变量在导入到另一个文件时不起作用!为什么?

转载 作者:行者123 更新时间:2023-12-04 01:14:13 25 4
gpt4 key购买 nike

src/another_folder/reactiveVarInitializationFile.js
从“@apollo/client”导入 {makeVar}
export const selectStore = makeVar('')
//我的组件

import {Select,Spin} from "antd"
import {selectStore} from "../../reactives/selectStore.RV"
import {useQuery} from "@apollo/client"
import FETCH_STORES from "../../queries/getStoresSelectSoreDPD"
export default function(){
const {data}= useQuery(FETCH_STORES)
const store = selectStore()
const onChange=(val)=>{
console.log(val)
selectStore(val)
}
console.log(store)
return(
<>
{!data?(<Spin/>):(
<Select
style={{width:"200px"}}
placeholder="Select store"
onChange={onChange}>
{data.currentUser.outlets.map(el=><Select.Option key={el.id} value={el.id}>{el.name}
</Select.Option>)}
</Select>

)}
<p>{store}</p>
</>
)
}
问题是当我将 selectStore 导入我的组件时,我无法通过 selectStore() 获取其值或通过执行 selectStore("new value") 来修改 var
有人可以帮我吗?

最佳答案

如果直接使用reactiveVar,它不会在值改变时更新,它只会在初始渲染时更新。
但是,如果您希望它在值更改时更新并触发重新渲染,则需要使用 useReactiveVar Hook :https://www.apollographql.com/docs/react/local-state/reactive-variables/
所以,像这样:

const store = useReactiveVar(selectStore);

关于reactjs - Apollo react 变量在导入到另一个文件时不起作用!为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63879825/

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