到目前为止,我一直在创建web音频节点,如过滤器、振荡器等。创建React组件时:
class Filter extends React.Component {
constructor(props) {
super(props);
const filter = props.context.createBiquadFilter();
this.state = { filter };
}
...
稍后,这意味着可以将过滤器作为组件状态的一部分进行更改:
frequencyChange(event) {
...
this.state.filter.frequency.setValueAtTime(range.value, context.currentTime);
}
<input type="range" className="slider" min={20} max={20000}
onChange={event => this.frequencyChange(event)}/>
然而,当涉及到将过滤器链接在一起时,我需要能够
disconnect()
我从该组件的父类创建的Web音频过滤器节点,以及
connect()
它将到达一个新的目的地。
假设父组件被调用
EffectsBox
Filter
.
下面是一些示例代码,希望能让我的问题更清楚:
class EffectsBox extends React.Component {
...
addNewEffect(effect) {
// disconnect() the previous effect and connect() it to a new one
}
render() {
// Maybe some kind of "map" here between effects and react components?
return <div>{ this.state.effects }</div>
}
refs
API,但它似乎不适合与任意数量的子类一起使用。不过,很高兴以其他方式显示它!