【发布时间】:2017-07-11 08:49:40
【问题描述】:
我提到了几个类似的问题,但我的情况略有不同。
Call a React Function from inside Render
How to Call a Function inside a Render in React/Jsx
React: Cant call a function inside child component
export default class CodeEditor extends React.Component {
appendAssets(asset) {
console.log(asset)
this.refs.editor.editor.insert(`player.asset('${asset}')`)
this.refs.editor.editor.focus()
}
render() {
function sequenceHierarchy (data, outputArray) {
level++
data.forEach(function (asset){
outputArray.push(<li className={`level_${level}`}><button onClick={_ => this.appendAssets(asset.name)}>{asset.name}</button></li>)
if(asset.children.length) {
sequenceHierarchy(asset.children, outputArray)
}
})
level--
}
}
}
所以sequenceHierarchy函数内部的按钮onClick必须调用appendAssets。当然,由于this 不能调用它,因为它不是该组件的一部分,所以我也尝试了只使用appendAssets(asset.name),但它仍然给出Uncaught ReferenceError: appendAssets is not defined 的错误
【问题讨论】:
标签: javascript reactjs