私はReactとRaphaelの両方を使ってプロジェクトを作っていますが、何とか私が解決できないコンテキストの問題に直面しています。コードのバージョンを簡素化React - Context issue - raphael-react
は以下の通りである:
私のonmouseover機能でimport React from 'react';
import {Raphael,Paper,Set,Circle,Ellipse,Image,Rect,Text,Path,Line} from 'react-raphael';
export default class PlanCdf extends React.Component {
\t onmouseover(){
\t \t console.log(this);
\t \t console.log(this.props.project);
\t }
\t drawTasks() {
\t \t return this.props.tasks.map((task) => {
\t \t \t return <Path mouseover={this.onmouseover} key={task._id} d={coords} attr={{"fill":"#444444", "stroke-width" : "2"}} />
\t \t })
\t }
\t render() {
\t \t return(
\t \t \t <Paper className={"paper"} width={this.state.paperWidth} height={this.state.paperHeight}>
\t \t \t \t <Set>
\t \t \t \t \t { this.drawTasks() }
\t \t \t \t </Set>
\t \t \t </Paper>
\t \t)
\t }
}
私は、コンテキストの両方にアクセスしたいと思います:状態や小道具にアクセスするために、一般的な文脈をし、 onmouseoverの間にパスのattrを変更するにはPathのコンテキストを使用しますが、何とか私は常に2つのうちの1つだけを取得します。
パスからこのコンテキストを取得しますが(上記の例のように)、this.stateにはアクセスできません。 もし私が縛ると、私はこれを完全に得ることができますが、私のパスにはもうアクセスできません。 。
私は得ることはありませんが、解決策を見つけるために管理することができません。おそらく単純な結合問題
--- EDIT ---私が今立つところだ
:
import React from 'react';
import {Raphael,Paper,Set,Circle,Ellipse,Image,Rect,Text,Path,Line} from 'react-raphael';
export default class PlanCdf extends React.Component {
constructor(props) {
super(props);
this.drawTasks = this.drawTasks.bind(this);
}
onmouseover(){
console.log(this.state);
}
drawTasks() {
return this.props.tasks.map((task) => {
return <PathWrapper mouseover={this.onmouseover} key={task._id} d={coords} attr={{"fill":"#444444", "stroke-width" : "3"}} />
})
}
render() {
return(
<Paper className={"paper"} width={this.state.paperWidth} height={this.state.paperHeight}>
<Set>
{ this.drawTasks() }
</Set>
</Paper>
)
}
}
export class PathWrapper extends React.Component {
constructor(props){
super(props);
}
onmouseover() {
console.log(this)
this.attr({'stroke-width':'5'})
this.props.mouseover()
}
render() {
return <Path mouseover={this.onmouseover} d={this.props.d} attr={this.props.attr} />
}
}
新しいPathWrapperコンポーネントのattrを変更することができます。それでも状態にアクセスすることはできません。親関数にアクセスするために小道具に送られた関数を呼び出すようにしましたが、属性を変更するためにPathコンテキストに入る必要があるのでできません...私は多かれ少なかれ子コンポーネントにpbを移動しました
私は正しい方向にいると感じますが、それは動作しません。私はそれに応じて質問を編集中です – Ivo