MishMick  
                (Mishal)
               
                 
              
                  
                    November 9, 2018,  9:07am
                   
                   
              1 
               
             
            
              I want to create custom Kibana plugin in React rather than AngularJS. I have written a simple React component and imported it in my main file as
return VisFacory.createReactVisualization({
      visConfig: {
          component: ReactComponent;
          .....
          .....
      }
});
My react component file is : 
import ....
class ReactComponent extends Component{
   render(){
      return (
         <div>Simple react plugin</div>
      );
}
}
ReactDOM.render(<ReactComponent/>);
 
Is this the correct way to go about it because I am getting an error stating
Uncaught Invariant Violation : Minified React error #200 . What does the error signify?
             
            
               
               
               
            
            
           
          
            
              
                umed  
                (Umedzhon Abdumuminov)
               
              
                  
                    November 9, 2018,  1:26pm
                   
                   
              2 
               
             
            
              Hi Mishal,
Some fixes:
Your ReactComponent should avoid ReactDOM.render and just export your component. So, it should looks like this:
import ....
export default class ReactComponent extends Component{
   render(){
      return (
         <div>Simple react plugin</div>
      );
  }
}
 
Your component will be rendered by kibana for this reason you are specifying your component in visConfig. 
             
            
               
               
               
            
            
           
          
            
              
                MishMick  
                (Mishal)
               
                 
              
                  
                    November 10, 2018, 10:27am
                   
                   
              3 
               
             
            
              Hi, I implemented the react component as you mentioned. However I ran into another problem. Here are my files
app.js
import { CATEGORY } from 'ui/vis/vis_category';
import { VisFactoryProvider }  from 'ui/vis/vis_factory';
import {Schemas} from 'ui/vis/editors/default/schemas';
import {VisTypesRegistryProvider} from 'ui/registry/vis_types';
import {ReactComponent} from './vis/ReactComponent';
const MynewVisType = (Private) => {
    const visFactory = Private(VisFactoryProvider);
    return visFactory.createReactVisualization({
        name: 'ml_d3',
        title: 'D3',
        icon: 'fa fa-eye',
        description: 'Cool new d3 chart',
        category: CATEGORY.OTHER,
        visConfig: {
            component: ReactComponent
        }
    });
}
VisTypesRegistryProvider.register(MynewVisType);
export default MynewVisType;
 
index.js:
export default function(kibana){
    return new kibana.Plugin({
        uiExports:{
            visTypes:[
                'plugins/d3kib/app'
            ]
        }
    });
}
 
ReactComponent.js
import React, {Component} from "react";
export default class ReactComponent extends Component{
   render(){
      return (
         <div>Simple react plugin</div>
      );
  }
}
 
package.json
{
    "name": "d3kib",
    "main": "index.js",
    "version": "1.0.0",
    "description": "Plugin to integrate d3 scripts",
    "kibana": {
        "version": "6.3.2"
    },
    "dependencies": {
        "ansi-to-html": "0.6.4",
        "handlebars": "4.0.6",
        "lodash.escape": "4.0.1",
        "lodash.get": "4.4.2",
        "lodash.set": "4.3.2",
        "react": "16.0.0"
    }
}
 
I am getting the error:
Is there something I might be missing? 
             
            
               
               
               
            
                
            
           
          
            
              
                umed  
                (Umedzhon Abdumuminov)
               
              
                  
                    November 10, 2018,  9:19pm
                   
                   
              4 
               
             
            
              I'm not sure that your problem is it, but for kibana 6.3 you should use template: ReactComponent instead of component: ReactComponent (docs ).
Actually, I'm using kibana 6.4 and writing plugins for it. I may not know some specific settings for kibana 6.3.
             
            
               
               
               
            
            
           
          
            
              
                system  
                (system)
                  Closed 
               
              
                  
                    December 8, 2018,  9:21pm
                   
                   
              5 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.