gpt4 book ai didi

javascript - Reactjs component.setProps() 替代方法,如何将变量发送到分离元素

转载 作者:行者123 更新时间:2023-11-30 17:18:49 27 4
gpt4 key购买 nike

我正在使用类似的东西:

var MUSIC = React.renderComponent( Music({ }), document.getElementById("music-div"))

稍后在脚本中,在一个独立元素(因此不是 MUSIC 的父元素)中执行:

MUSIC.setProps({ url: 'http://...' })

将歌曲发送到与其他音乐分离的音乐播放器,因此它不会意外地被 React 刷新,因为它是以编程方式生成的 (wavesurferjs)

很好,但是,最近的几个更新 (.11.x) 显然已经弃用了它。我确实理解它们的来源,它符合整个 React 逻辑。

但是,我们现在如何从外部以编程方式修改状态/ Prop ?即使我想直接与家长交谈,这也是允许的。

更改日志告诉我,在这种情况下,MUSIC 变量会变成一个描述符,但是,据我所知,在控制台中输出的是完全相同的对象。文档中只字未提此 descriptor,更不用说其他可能性了。

( http://facebook.github.io/react/blog/2014/07/17/react-v0.11.html#descriptors )

所以,如果我有两个 div

<div id="main-div"> <button></button></div>
<div id="music-div"> </div>

并且想要将它们分开,我将如何为两个平行的 parent 提供彼此的 Prop ?我不想将两者都放在一个 react ​​ div 中,这甚至无法解决我的问题,因为 main-div 中的 button 将如何为音乐提供 Prop -div?

或者他们设想的替代方案是仅在该 id 上创建一个新实例并希望它 diff 为 0?

更新状态:

"You could store that reference and then call functions on it (eg component.setProps(...)). This no longer works."

但是,这仍然适用于 (0.11.1),所以我不明白他们在说什么?

最佳答案

您有多种选择。

  1. 用“Application”组件包装main-divmusic-div。向下传递一个更改其状态的处理程序,以便重新呈现 div。

  2. 使用事件总线来分派(dispatch)和监听事件。基本上,组件将其私有(private)的 setState/setProps() 方法公开给监听器中的事件总线。另一个组件调度触发该监听器的事件。

关于javascript - Reactjs component.setProps() 替代方法,如何将变量发送到分离元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571707/

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