props
オブジェクトがReact.createElement
で提供される場合、createElement
メソッドはそのオブジェクトの列挙可能なプロパティのみをチェックします少なくとも)。は、 "props"リテラルの代わりにReactJSコンポーネントに "class" "instances"を渡します
したがって、ECMAScript-6クラスを使ってその状態を変更する方法(カプセル化、右?)をモデル化したReactJS状態の場合は、createElement
の呼び出しでその状態をReactJSコンポーネントに渡すことはできません。 ReactJSはメソッドを表示しません。だから私はこのようなことをしなければならない:
const MyApp = React.createClass({
propTypes: {
methodA: React.PropTypes.func.isRequired,
methodB: React.PropTypes.func.isRequired
},
...});
class MyAppState {
...
}
let appState = new MyAppState();
ReactDOM.render(
React.createElement(MyApp, Object.assign(
{
methodA: s.methodA.bind(s),
methodB: s.methodB.bind(s)
}, appState))
, document.getElementById('somePlace')
)
...どのような種類のビート。私はJavascriptの "クラス"の大ファンではありませんが、クラスがReactJS要素のためにprops
を提供するためにその方法で使用される方法はありますか?クラス "フィールド"は列挙可能なので、問題はありません。これは私がこのように渡すことができないメソッド/アクションです。
あなたが 'class'構文のファンでなければ、誰もあなたにそれを使用させます。 – Bergi
私はあなたがその 'assign'コールの引数を反転するべきだと思います – Bergi
React' props'オブジェクトが列挙できないメソッドを持つクラスインスタンスを与えられないことを確認し、この制限を回避するアイデアを求めることです。これがReactのやり方であることが確認された場合、問題はおそらくインスタンスのメソッドを列挙できるようにする方法と同じですが、XY問題のためにこの方法を使用したくありません。 –