ref 相关问题

ref关键字导致参数通过引用传递,而不是通过值传递。通过引用传递的效果是方法中对参数的任何更改都会反映在调用方法中的基础参数变量中。引用参数的值始终与基础参数变量的值相同。

反应访问<canvas/>子组件的引用

我正在尝试按一下按钮将画布另存为 PNG 文件。 这是我现在的代码:(这部分正在工作) const canvasRef01 = useRef(null); const saveAsPng = () => { 常量画布 =

回答 1 投票 0

处理SML中“ref”的递归函数

这是我的第一个递归函数;我是编程世界的新手。所以,这段代码确实让我很困惑。我发现SML不允许变量更新。所以我学会了使用 ref,然后...

回答 1 投票 0

获取列表范围作为参考[重复]

我想从列表中获取一个子列表并对其进行操作。并且结果应该应用于主列表 var myNumber = new List() { 1, 5, 9, 7, 2, 8, 2 }; var 子编号 =

回答 2 投票 0

在 React 中使用 refs 处理 iframe

我正在尝试在 React 组件中设置 iframe 的内容。我有一个组件,其中包含一个 handleStatementPrint 函数,当 iframe 完成加载时必须调用该函数。那个

回答 1 投票 0

通过 std::ref 将共享指针传递给 std::bind 将剥离它的多态性

当我尝试将基类“this”指针动态转换为派生类指针时,我的程序因 SIGSEGV 崩溃。我想知道它是否与 std::bind 和 std::ref 有关。下面...

回答 2 投票 0

无法分配,因为是临时借用的

我有以下代码,具有两个几乎相同的功能。其中之一无法编译。 结构节点{ 酒吧数据:i32, 酒吧下一个:选项>>, 酒吧上一页:

回答 1 投票 0

在 Moq 中分配 out/ref 参数

是否可以使用 Moq (3.0+) 分配 out/ref 参数? 我研究过使用 Callback(),但 Action<> 不支持 ref 参数,因为它基于泛型。我也更喜欢...

回答 15 投票 0

使用开关计算字符频率

我正在尝试计算每个字符在字符串中出现的时间,我正在使用开关和for循环,但是,它们没有正确增加。这是我的代码 让 countChar x = 匹配...

回答 3 投票 0

OAML 使用开关计算 char 的频率

我正在尝试计算每个字符在字符串中出现的时间,我正在使用开关和for循环,但是,它们没有正确增加。这是我的代码 让 countChar x = 匹配...

回答 2 投票 0

输入引用数组

我正在尝试创建一个允许用户在其外部单击的组件。为此,我需要为需要该功能的每个组件创建一个引用。这就是我正在尝试输入的内容...

回答 1 投票 0

如何在React中使用forwardRef输入多个引用?

我有父组件,我在其中定义了一些引用。然后我创建一个包含所有这些引用的对象。然后将此对象传递给子组件的 ref 。 父组件只是一个页面组件,子组件

回答 1 投票 0

C# 取消引用在幕后如何工作

这段代码来自名为“Pro C# with .NET 6”的书,我想知道当对引用(ref Person p)的引用传递给该方法时幕后会发生什么。例如,当我们...

回答 1 投票 0

错误无法在Vue脚本设置中通过ref获取函数

我正在用 Vue 3 做一个翻转纸牌游戏并使用 。当我尝试在选择两张不同的卡片时处理卡片翻转时遇到了麻烦。我的代码旨在翻转卡片,使用它......</desc> <question vote="1"> <p>我正在使用 Vue 3 并使用 <pre><code>&lt;script setup&gt;</code></pre> 制作翻转纸牌游戏。当我尝试在选择两张不同的卡片时处理卡片翻转时遇到了麻烦。我的代码旨在在选择错误时翻转卡片使用其索引</p> <ul> <li>文件 InteractScene.vue</li> </ul> <pre><code>&lt;script setup&gt; import CardGame from &#34;@/components/CardGame.vue&#34;; import { ref } from &#34;vue&#34;; const rules = ref([]); defineProps({ cardContext: { type: Array, default: () =&gt; [] } }); const checkRule = (card) =&gt; { let rule = rules.value; if (rule.length === 2) return false; rule.push(card); if (rule.length === 2 &amp;&amp; rule[0].value === rule[1].value) { console.log(&#34;true...&#34;); } else if (rule.length === 2 &amp;&amp; rule[0].value !== rule[1].value) { console.log(`card-${rule} and card-${rule[1].index}`); ref.value[`card-${rule[0].index}`][0].onFlipBackCard(); ref.value[`card-${rule[1].index}`][0].onFlipBackCard(); } else return false; }; &lt;/script&gt; &lt;template&gt; &lt;div class=&#34;scene&#34;&gt; &lt;h1&gt;Interact Component here&lt;/h1&gt; &lt;CardGame v-for=&#34;(card, index) in cardContext&#34; :key=&#34;index&#34; :ref=&#34;`card-${index}`&#34; :img-back-face-url=&#34;`images/${card}.png`&#34; v-bind:card=&#34;{ index, value: card }&#34; :rules=&#34;rules&#34; @flip=&#34;checkRule($event)&#34; /&gt; &lt;/div&gt; &lt;/template&gt; </code></pre> <ul> <li>文件 CardGame.vue</li> </ul> <pre><code>&lt;script setup&gt; import { ref } from &#34;vue&#34;; const emits = defineEmits([&#34;flip&#34;]); const isFlipped = ref(false); // eslint-disable-next-line vue/valid-define-props const { card, imgBackFaceUrl } = defineProps({ card: [String, Number, Array, Object], imgBackFaceUrl: String }); const onToggleFlipCard = () =&gt; { isFlipped.value = !isFlipped.value; if (isFlipped.value) { emits(&#34;flip&#34;, card); } }; const onFlipBackCard = () =&gt; { isFlipped.value = false; } &lt;/script&gt; &lt;template&gt; &lt;div class=&#34;card&#34;&gt; &lt;div class=&#34;card-inner&#34; :class=&#34;{&#39;is-flipped&#39;: isFlipped}&#34; v-on:click=&#34;onToggleFlipCard&#34; &gt; &lt;div class=&#34;card-face card_face-font&#34;&gt; &lt;div class=&#34;card-content&#34;&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class=&#34;card-face card_face-back&#34;&gt; &lt;div class=&#34;card-content&#34; :style=&#34;{ backgroundImage: `url(&#39;/src/assets/${imgBackFaceUrl}&#39;)`}&#34;&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/template&gt; </code></pre> <p>我在网络控制台上收到此错误 <a href="https://i.stack.imgur.com/AZZZf.png" target="_blank"><img src="https://cdn.imgupio.com/i/AWkuc3RhY2suaW1ndXIuY29tL0FaWlpmLnBuZw==" alt="enter image description here"/></a></p> <p>在我看来,问题可能是提供者或接收者没有提供参考。 在 InteractScene.vue 中,错误来自</p> <pre><code>... ref.value[`card-${rule[0].index}`][0].onFlipBackCard(); ref.value[`card-${rule[1].index}`][0].onFlipBackCard(); ... </code></pre> <p>而GameCard.vue中,onFlipBackCard就是参考函数</p> <pre><code>const onFlipBackCard = () =&gt; { isFlipped.value = false; } </code></pre> <p>我在上面的代码中使用正常的<pre><code>&lt;script&gt;</code></pre>并且它可以工作。我是 Vue 3 的新手,所以我仍然想使用 <pre><code>&lt;script setup&gt;</code></pre> 来获取更多知识。我希望我能在<pre><code>&lt;script setup&gt;</code></pre>中获得解析代码。</p> <p>正常<pre><code>&lt;script&gt;</code></pre>代码:</p> <ul> <li>InteractScene.vue</li> </ul> <pre><code>&lt;script&gt; import CardGame from &#34;@/components/CardGame.vue&#34;; export default { props: { cardContext: { type: Array, default: function () { return [] } } }, components: { CardGame }, data() { return { rules: [] }; }, methods: { checkRule(card){ console.log(card) if(this.rules.length === 2) return false this.rules.push(card) if(this.rules.length === 2 &amp;&amp; this.rules[0].value === this.rules[1].value){ console.log(&#34;true...&#34;) } else if(this.rules.length === 2 &amp;&amp; this.rules[0].value !== this.rules[1].value){ console.log(&#34;Wrong...&#34;) this.$refs[`card-${this.rules[0].index}`][0].onFlipBackCard(); this.$refs[`card-${this.rules[1].index}`][0].onFlipBackCard(); this.rules = [] } else return false } } }; &lt;/script&gt; </code></pre> <ul> <li>CardGame.vue</li> </ul> <pre><code>&lt;script&gt; export default { props: { card: { type: [String, Number, Array, Object] }, imgBackFaceUrl: { type: String, required: true } }, data() { return { isFlipped: false }; }, methods: { onToggleFlipCard() { this.isFlipped = !this.isFlipped; if(this.isFlipped) this.$emit(&#34;flip&#34;, this.card) }, onFlipBackCard(){ this.isFlipped = false } } } &lt;/script&gt; </code></pre> <p>我的源代码:<a href="https://github.com/Jdsatashi/Vue-PokeGame" rel="nofollow noreferrer">https://github.com/Jdsatashi/Vue-PokeGame</a></p> </question> <answer tick="false" vote="0"> <p><pre><code>ref.value</code></pre> 与 <pre><code>this.$refs</code></pre> 不同。相关的 Vue 3 文档应该可以解决这个问题,那就是 <a href="https://vuejs.org/guide/essentials/template-refs.html#template-refs" rel="nofollow noreferrer">Template Refs</a> 上的页面。</p> <p>您必须声明自己的自定义 <pre><code>ref</code></pre> 数组,它将保存 DOM 元素的 <pre><code>:ref=</code></pre> 属性。 ref 属性也应该与您的 ref 变量名称完全相同。</p> <pre><code>const cards = ref([]) </code></pre> <pre><code>&lt;CardGame v-for=&#34;(card, index) in cardContext&#34; :ref=&#34;cards&#34; ... /&gt; </code></pre> <p><pre><code>cards</code></pre> 是一个可搜索的索引数组,您可以在代码中的其他位置引用以在需要时查找所需的任何元素。</p> <pre><code>cards.value[0].onFlipBackCard(); </code></pre> <hr/> <p>作为旁注,我建议使用比索引更好的<pre><code>:key</code></pre>,因为它对于跟踪列表的更改并不可靠。它在某些情况下可以正常使用,但如果您的应用程序涉及任何类型的添加、删除或更改您的卡列表,您将需要一个独特的属性,例如某种唯一的 id。</p> </answer> </body></html>

回答 0 投票 0

React - useRef 与 TypeScript 和功能组件

我正在尝试使用 useRef 从父组件调用子组件方法。 将来,SayHi 方法将更新子组件中的钩子状态。不幸的是,我有错误......

回答 3 投票 0

与 rust RefCell<T> 和 Ref

我正在努力解决为什么下面的代码无法编译。我正在尝试创建一个具有两个节点的双向链表。然后从子节点指针访问父节点的值。 使用 std::cell::RefCell...

回答 1 投票 0

使用 { ref } 检索 div 坐标

我正在 VUeJS 的聊天项目中工作,我想创建一个工具提示,出现在我将鼠标指针悬停在其上的用户名顶部。 这是我的代码: 我正在 VUeJS 的聊天项目中工作,我想创建一个工具提示,出现在我将鼠标指针悬停在用户名上的工具提示。 这是我的代码: <template> <Tooltip :user="user" :selectedUser="tooltipUser" :left="left" :top="top" v-if="tooltipVisible" /> <div class="socialUsers" v-show="activeTab === 'users'"> <div class="user" v-for="user in users" :key="user.id"> <img class="avatar" :src="getUserAvatarUrl(user.avatar)" :alt="user.username" ref="chatTooltip" @click="displayTooltip(user)"> <span class="username" :style="{ color: user.usernameColor }">{{ user.username }}</span> </div> </div> </template> <script setup lang="ts"> import { ref, onMounted } from 'vue' import User from '@/models/user.model' import Tooltip from '@/components/profile.tooltip.vue' defineProps<{ activeTab: string users: User[] user: User | null }>() const tooltipVisible = ref(false) const tooltipUser = ref<User | null>(null) const user = ref(tooltipUser) const left = ref(0) const top = ref(0) const displayTooltip = (user: User): void => { tooltipUser.value = user tooltipVisible.value = !tooltipVisible.value const chatTooltip = this.$refs.chatTooltip if (chatTooltip) { const rect = chatTooltip.getBoundingClientRect() left.value = rect.x top.value = rect.y } } const getUserAvatarUrl = (filename: string): string => { return `http://${process.env.VUE_APP_BACKEND_HOST}:${process.env.VUE_APP_BACKEND_PORT}/users/avatar/${filename}` } </script> 我想将我想要使用 this.$refs.chatTooltip 检索的变量“left”和“top”传递给工具提示组件 有可能吗?有更好的解决方案吗? 非常感谢您的帮助, 棒极了 我不确定是否正确理解了你的问题。但我认为这是关于找到被点击的img的ref。 这里您的 ref chatTooltip 是一个数组(如 v-for 中的 Refs 所示)。您应该能够使用被单击的用户的索引来获取正确的引用。 我不太确定我的TS代码,但应该是这样的。 <div class="user" v-for="(user,i) in users" :key="user.id"> <img class="avatar" :src="getUserAvatarUrl(user.avatar)" :alt="user.username" ref="chatTooltips" @click="displayTooltip(user,i)"> <span class="username" :style="{ color: user.usernameColor }">{{ user.username }}</span> </div> const tooltipVisible = ref(false) const tooltipUser = ref<User | null>(null) const user = ref(tooltipUser) const left = ref(0) const top = ref(0) const chatTooltips = ref([]) const displayTooltip = (user: User, i: number): void => { tooltipUser.value = user tooltipVisible.value = !tooltipVisible.value const chatTooltip = chatTooltips.value[i] if (chatTooltip) { const rect = chatTooltip.getBoundingClientRect() left.value = rect.x top.value = rect.y } }

回答 1 投票 0

在自定义模式中实现 dbt 模型

我的dbt项目中有model2.sql 选择 * 来自 {{ ref('model1') }} 编译后我需要得到 选择 * 来自 'dwh'.'analytics'.'model1' 并将其具体化为模式“analytics_test ...

回答 1 投票 0

this.$refs.myForm.validate 不是我的 vue 组件中的函数

规则有效并显示正确的验证消息。 当 this.valid 为 false 时,该按钮被禁用。 每次输入都会调用 checkTextBoxValidation 方法来检查 ...

回答 1 投票 0

为什么在使用 ref 时不传递样式组件对象的值

styled-component Styled = styled.divmargin: 0; 的值未传递给 ref 元素。但是当我使用内联样式时,样式会传递给元素。 请参阅附图。 使用我...

回答 0 投票 0

如何在功能组件中访问映射 div 的内容(DOM 节点)

我的代码:https://codesandbox.io/s/quirky-wescoff-44n2by?file=/src/App.js 当我将鼠标悬停在任何元素上时,总是在控制台中打印数组的最后一个元素。 我尝试使用 ref,不确定我是否...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.