我已经提到了几个类似的问题,但我的情况有点不同。反应:从渲染函数调用函数
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
谢谢Hardik。这帮了我。 –
很高兴帮助:) –