通常の機能コンポーネント「Touchable」を作成するHOCを作成しようとしています。React HOC-addラップするイベントリスナー
だから私はそのようHOCことがあります。
const Touchable = (Component, handler) => {
const T = ({props, children}) => {
const Instance = React.createElement(
Component,
{
...props,
onTouchStart: (e) => handler.touchStart(e),
/*more listeners*/
}, children);
}
return T;
}
そうのような別のコンポーネント:(反応する開発者のパネルで
<Button>Hallo</Button>
結果:
const Button = ({props, children}) => <div>…</div>;
export default Touchable(Button, {touchStart:() => {}});
はそうのようにこれを使用します):
<Button onTouchStart={…}>
<div>…</div>
</Button>
しかし、私が本当にしたいと思いますされています。私は、インスタンスのクローンを作成しようとしましたが、どういうわけか私は運を持っていない
<Button>
<div onTouchStart={…}>…</div>
</Button>
。どうやってやるの?
今、私はそれを設定しましたが、私はそれを取り除く方法を見つけるのが大好きですラップされたコンポーネントの '{... rest}'それを実現させる方法はないと思いますか? – philipp
@philippそうは思わない。どの小道具を通過する必要があるかを事前に知っていない限り。 – mersocarlin
でもそうです: 'onTouch [Start | Move | End]' – philipp