猿问

vue自定义组件ref报错

在使用自定义组件使用ref的时候,发现会报错,

当正确的时候:点击按钮输入框focus


 <div id="L4">

                <ref-component>

                </ref-component>

                

           </div>

           <script>

            Vue.component('ref-component',{

              template:`

                        <div>

                           <input ref="name" type="text">

                            <button  @click="focus">fouce</button>

                        </div>

                       `,

              methods:{

                focus:function(){

                this.$refs.name.focus()

                }

              }

            })

            new Vue({

              el:'#L4'

            })

但是将输入框写入一个子组件的时候再执行按钮事件,就会报错


     <div id="L4">

                <ref-component>

                </ref-component>

                

           </div>

           <script>

            Vue.component('ref-component',{

              template:`

                        <div>

                           <refs-component ref="name"></refs-component>

                            <button  @click="focus">fouce</button>

                        </div>

                       `,

              methods:{

                focus:function(){

                this.$refs.name.focus()

                }

              }

            })

            Vue.component('refs-component',{

              template:`<input type="text" />`

            })

            new Vue({

              el:'#L4'

            })

           </script>

报错是

请问如何才能访问这个子组件的内容呢?

qq_遁去的一_1
浏览 1201回答 1
1回答

江户川乱折腾

显然是refs-component这个组件没有focus方法,你没有引用在input上Vue.component('refs-component',{&nbsp; template:`<input ref='input' type="text" />`,&nbsp; methods: {&nbsp; &nbsp; &nbsp;focus(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.$refs.input.focus();&nbsp; &nbsp; &nbsp;}&nbsp; }&nbsp; &nbsp;&nbsp;})这样试试
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答