2017-10-03 12 views
0

상수 내에서 메소드를 선언 할 수 있지만 navbar에서 onLogout 메소드를 구현하려고 시도하지만 'js [;] expected'라고 말하는 것으로 오류가 발생하거나 클래스를 다음과 같이 선언해야합니다.상수 내에서 Meteor onLogout 메소드를 선언 할 수 있습니까?

수출 기본 클래스 착륙

import React from 'react'; 
import {Link} from 'react-router' 
import { Accounts } from 'meteor/accounts-base'; 

const NavbarLanding =() => { 
    onLogout() { 
    Meteor.logout(); 
    }; 
    return (
    <div className="navbar-landing"> 
     <nav> 
     <div> 
      <ul className="ul-landing"> 
      <img src="/images/fly_paper.svg"></img> 
      <li className="navbar-title"><a>Landing</a></li> 
{/* <img border="0" height="40" hspace="0" src="/images/fly_paper.png" width="80" /> */} 
{/* onClick={this.onLogout.bind(this) */} 
{/* btn-primary */} 
      <div className="navbar-menu"> 
       <li><a>acerca</a></li> 
       <li><a>portafolio</a></li> 
       <li><a>contacto</a></li> 

       <button className="btn"onClick={this.onLogout.bind(this)}>Logout</button> 
      </div> 
      </ul> 
     </div> 
     </nav> 
    </div> 
); 
}; 

export default NavbarLanding; 

NavbarLanding.reactProptype = { 
    title: React.PropTypes.string.isRequired 
}; 

답변

0
당신은 당신의 구성 요소를 선언 실수를

React.Component을 확장, 그것은 다음과 같이해야합니다 :

export default class NavbarLanding extends React.Component { 
    onLogout() { 
    Meteor.logout(); 
    } 

    render() { 
    return (
     // your html here 
    ); 
    } 
}; 

NavbarLanding.reactProptype = { 
    title: React.PropTypes.string.isRequired 
}; 
+0

예, 그것에 대한 정보를 찾고 메소드가 객체/클래스 전용임을 확인하십시오. 함수 안에는 메서드를 넣을 수 없습니다. –

+0

@GerardoBautista 글쎄, 당신은 실제로 할 수 있습니다. 'const myMethod =() => {...}; 또는 function myMethod() {...}와 같은 것이지만 코드에서했던 것과는 다릅니다. – Styx