ツリーを生成するサンプルコードがあります。しかし、コンストラクタですべてを定義している間に、this.state.action
またはthis.onClickNode
が定義されていないというエラーが表示されます。"this.state"またはメソッドがReactjsにアクセスできない
export default class TreeList extends React.Component {
constructor(props) {
super(props)
this.state = {tree: tree, action: null}
this.onClickNode = this.onClickNode.bind(this)
}
onClickNode(node) {
this.setState({active: node})
}
renderNode(node) {
console.log(this.state.action)
return (
<span onClick={this.onClickNode(null, node)}>
{node.module}
</span>
);
}
render() {
return (
<div>
<Tree tree={this.state.tree} renderNode={this.renderNode}/>
</div>
)
}
}
私はこのライブラリを使用しました:this
はES6クラスのnot automatically boundあるのでhttps://pqx.github.io/react-ui-tree/
'this.renderNode'関数に' this'をバインドする必要があります。たとえば 'this.renderNode = this.renderNode.bind(this)' –
'onClickNode'で状態にアクセスできませんか?あなたが 'on.Node'ではなく、' node'ではなく 'null'に設定されていることを知っておいてください。これはあなたの' onClickNode'の中の最初のパラメータです。 – Ido
@Idoはいそれはヌルです。代わりにundefinedを返します。 – Mortezaipo