如何在ReactJS中手动触发单击事件?当用户点击element1时,我想自动触发input标签上的点击.
<div className="div-margins logoContainer">
<div id="element1" className="content" onClick={this.uploadLogoIcon}>
<div className="logoBlank" />
</div>
<input accept="image/*" type="file" className="hide"/>
</div>
Run Code Online (Sandbox Code Playgroud) 我正在构建一个显示有关视频音频的信息的组件。我使用AudioContext接口从 HTML5 视频元素获取音频样本。第一次创建组件时它工作正常,但是当卸载组件然后在稍后重新创建时,我收到以下错误消息:
未捕获的 InvalidStateError:无法在“AudioContext”上执行“createMediaElementSource”:HTMLMediaElement 之前已连接到不同的 MediaElementSourceNode。
这是我获取音频的方式:
const video = document.querySelectorAll('video')[0]
if (!window.audioContext) {
window.audioContext = new (window.AudioContext || window.webkitAudioContext)
}
if (!this.source && !this.scriptNode) {
this.source = window.audioContext.createMediaElementSource(video)
this.scriptNode = window.audioContext.createScriptProcessor(4096, 1, 1)
}
this.scriptNode.onaudioprocess = (evt) => {
// Processing audio works fine...
}
this.source.connect(this.scriptNode)
this.scriptNode.connect(window.audioContext.destination)
Run Code Online (Sandbox Code Playgroud)
当组件被卸载时,我会这样做:
if (this.source && this.scriptNode) {
this.source.disconnect(this.scriptNode)
this.scriptNode.disconnect(window.audioContext.destination)
}
Run Code Online (Sandbox Code Playgroud)
我认为这会让我处于可以安全地创建和连接新节点的状态。但是下次挂载组件时,这个块会抛出前面提到的错误:
if (!this.source && !this.scriptNode) {
this.source = window.audioContext.createMediaElementSource(video) // this throws the error
this.scriptNode = window.audioContext.createScriptProcessor(4096, 1, 1)
} …Run Code Online (Sandbox Code Playgroud) 在不改变SelectionState的情况下,将一个空的无格式块添加到Draft.js编辑器的最佳方法是什么?
我在使用Xcode6(beta 4)在swift中创建自定义表视图单元时遇到了麻烦.更确切地说,我无法在单元格内访问(解包)我的自定义UILabel,因为它们永远不会被初始化.
以下是我所有设置的方法:
我在storyboard中创建了一个视图,其中包含一个带有原型单元格的表格视图:

视图连接到类MyCoursesTableViewController,单元格(带有标识符courseCell)连接到CourseTableViewCell.我在下面粘贴了两个类(只有相关的代码位):
MyCoursesTableViewController.swift
import UIKit
class MyCoursesTableViewController: NavToggleTableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(CourseTableViewCell.self, forCellReuseIdentifier: "courseCell")
}
override func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
return 1
}
override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var cell : CourseTableViewCell = tableView.dequeueReusableCellWithIdentifier("courseCell", forIndexPath: indexPath) as CourseTableViewCell
// cell is not nil
if let titleLabel = cell.titleLabel {
// never gets here
} …Run Code Online (Sandbox Code Playgroud) html ×2
reactjs ×2
audio ×1
draftjs ×1
ios ×1
javascript ×1
react-jsx ×1
swift ×1
uitableview ×1