I'm trying to incorporate this map into an existing grails/react project.
Updated code:
index.js
ReactDOM.render(( <Router history = {browserHistory}> <Route path="/" component={CreateAccount}/> <Route path="/menu" component={Menus}/> <Route path="/discover" component={DiscoverApp}/> <Route path="/NorthAmerica" component={northAmerica}/> <Route path="/SouthAmerica" component={southAmerica}/> <Route path="/Europe" component={europe}/> <Route path="/Asia" component={asia}/> <Route path="/Africa" component={africa}/> <Route path="/Australia" component={australia}/> </Router> ), document.getElementById('root'));
index.gsp
<head> <title>Food App</title> <link rel="stylesheet" href="${resource(dir: 'css', file: 'text.css')}" type = "text/css"> <link rel="stylesheet" href="${resource(dir: 'css', file: 'jquery-jvectormap-2.0.3.css')}" type = "text/css" media="screen"> <javascript src="/js/jquery-3.1.1.js" /> <javascript src="jquery-jvectormap-2.0.3.min.js" /> <javascript src="jquery-jvectormap-world-mill-en.mins.js" /> </head> <body> <div id="root" align="left"></div> <br/> <asset:javascript src="bundle.js"/> </body> </html>
and
import React, { Component } from 'react'; import {Link} from 'react-router'; import $ from 'jquery'; import ReactDOM from 'react-dom'; class NorthAmerica extends Component { componentDidMount() { const el = ReactDOM.findDOMNode(this.display); $(el).vectorMap({map: 'world_mill_en'}); } render(){ return( <div> <h1>NORTH AMERICA MAP PLACE-HOLDER</h1> <li><Link to="/discover">DISCOVER</Link></li> <div ref={display => this.display = display} /> </div> ) } } export class northAmerica extends React.Component{ render(){ return(<NorthAmerica/>); } }
Any suggestions? Thanks!
Updated:
Page loads now... but where the map should be is just a blank div. I get this error in the console:
Uncaught TypeError: (0 , _jquery2.default)(...).vectorMap is not a function at NorthAmerica.componentDidMount (bundle.js?compile=false:12781) at bundle.js?compile=false:26803 at measureLifeCyclePerf (bundle.js?compile=false:26613) at bundle.js?compile=false:26802 at CallbackQueue.notifyAll (bundle.js?compile=false:9088) at ReactReconcileTransaction.close (bundle.js?compile=false:31708) at ReactReconcileTransaction.closeAll (bundle.js?compile=false:5241) at ReactReconcileTransaction.perform (bundle.js?compile=false:5188) at ReactUpdatesFlushTransaction.perform (bundle.js?compile=false:5175) at ReactUpdatesFlushTransaction.perform (bundle.js?compile=false:1438)