Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 是否可以扩展JSX/React以允许自定义指令?_Reactjs_Jsx_Directive - Fatal编程技术网

Reactjs 是否可以扩展JSX/React以允许自定义指令?

Reactjs 是否可以扩展JSX/React以允许自定义指令?,reactjs,jsx,directive,Reactjs,Jsx,Directive,例如,我可以定义一个属性,比如trackClick={},这样我就可以在我的JSX代码中使用它了吗 class MyComponent extends React.Component { render() { return <a href="/foo" trackClick={{ some: "data" }}>bar</a> } } export default withTracking(MyComponent) function withTra

例如,我可以定义一个属性,比如
trackClick={}
,这样我就可以在我的JSX代码中使用它了吗

class MyComponent extends React.Component {

  render() {
    return <a href="/foo" trackClick={{ some: "data" }}>bar</a>
  }

}

export default withTracking(MyComponent)

function withTracking(WrappedComponent) {
  // do something here to make `trackClick` possible?
}
类MyComponent扩展了React.Component{ render(){ 返回 } } 使用跟踪导出默认值(MyComponent) 带跟踪功能(WrappedComponent){ //在这里做些什么使“trackClick”成为可能? } 以下是您需要了解的内容:

function withTracking(WrappedComponent) {
  return class extends React.Component {
    // this.props.trackClick
    trackHandler => (trackClick) => (e) => {
       // prevent default, since you're using `a` tag
       e.preventDefault()
      // do something with trackClick
    }
    render() {
      const { trackClick, ...rest } = this.props
      return <WrappedComponent 
        onClick={this.trackHandler(trackClick)} 
        {...rest}
      />;
    }
  }
}
带跟踪功能(WrappedComponent){
返回类扩展了React.Component{
//单击此.props.trackClick
trackHandler=>(trackClick)=>(e)=>{
//防止默认值,因为您使用的是'a'标记
e、 预防默认值()
//用trackClick做点什么
}
render(){
const{trackClick,…rest}=this.props
返回;
}
}
}
以下是您需要了解的内容:

function withTracking(WrappedComponent) {
  return class extends React.Component {
    // this.props.trackClick
    trackHandler => (trackClick) => (e) => {
       // prevent default, since you're using `a` tag
       e.preventDefault()
      // do something with trackClick
    }
    render() {
      const { trackClick, ...rest } = this.props
      return <WrappedComponent 
        onClick={this.trackHandler(trackClick)} 
        {...rest}
      />;
    }
  }
}
带跟踪功能(WrappedComponent){
返回类扩展了React.Component{
//单击此.props.trackClick
trackHandler=>(trackClick)=>(e)=>{
//防止默认值,因为您使用的是'a'标记
e、 预防默认值()
//用trackClick做点什么
}
render(){
const{trackClick,…rest}=this.props
返回;
}
}
}

我知道HOCs,我想问是否可以添加自定义指令请查看注释的代码行。这就是你可以使用的。我知道我可以用HOC做什么,我仍然在问是否有可能创建一个实际的指令。现在,我不确定你在问什么。你可以用这些道具做你想做的。我已经编辑了我的答案。希望,这能满足您的查询。我知道HOCs,我在问是否可以添加自定义指令请查看注释行代码。这就是你可以使用的。我知道我可以用HOC做什么,我仍然在问是否有可能创建一个实际的指令。现在,我不确定你在问什么。你可以用这些道具做你想做的。我已经编辑了我的答案。希望,这能满足您的查询。不要直接使用
,请使用自定义组件。不要直接使用
,请使用自定义组件。