2017-10-03 12 views
0

私は定数内でメソッドを宣言することができますが、navbarにonLogoutメソッドを実装しようとしましたが、「js [;] expected」と言ってメソッドにエラーが発生するか、このようにクラスを宣言する必要があります:定数内のMeteor onLogoutメソッドを宣言できますか?

輸出デフォルトのクラスの着陸は、あなたがあなたのコンポーネントを宣言エラーをしたReact.Component

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

を拡張し、それは次のようにする必要があります:

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

関連する問題