React JS:如何将函数参数转换为组件引用?
动态访问组件实例引用的解决方案
嘿,我懂你碰到的问题了——你想通过传入的字符串参数,动态调用对应的组件引用对吧?直接写this.value肯定不行,因为这里的value是个变量,而JavaScript里用点号.访问对象属性时,后面的名称是字面量,它会直接去找this上名为value的属性,而不是变量value里存的那个字符串(比如"Info")对应的属性。
正确的写法:使用方括号语法
要动态访问对象属性,你得用**方括号[]**语法,它会把括号里的表达式求值,然后用结果作为属性名去访问对象。修改你的代码如下:
changeMenu = (value) => { console.log(value); // 输出 "Info" scrollToComponent(this[value]); // 用方括号动态获取组件引用 };
额外注意事项
确保你的组件引用确实已经挂载到this上了,比如在render方法里应该有类似这样的代码:
render() { return ( <div> <div ref={ref => this.Info = ref}>这是Info组件的内容</div> {/* 其他组件... */} </div> ); }
这样当你传入value为"Info"时,this[value]就能准确拿到对应的DOM/组件引用啦。
内容的提问来源于stack exchange,提问作者srailov kairat
相关产品推荐
相关产品推荐

