2017-11-22 6 views
0

다른 모듈에서 호출 할 함수 모듈을 만들려고합니다. 마찬가지로 React는 axios.get()과 같이 어디에서나 가능합니다. 나는 Flux에 대해 알고 있고 소품으로 메서드를 전달합니다. 그러나이 경우 내가하고 싶은 것은 다음과 같습니다.React from another module에서 모듈의 메소드에 액세스하려면 어떻게합니까?

var module1 = class module1 extends React.Component{ 
    render() { 
     function module1Method(){ 
      console.log("Im from Module1"); 
     } 
     return (
     <div/> 
    ); 
    } 
} 
export default module1; 

/////////////////////////////////////// in another file 

import module1 from "./module1"; 
var module2 = class module2 extends React.Component{ 
    render() { 
     module1.module1Method(); 
     return (
      <div/> 
     ); 
    } 
} 
export default module2; 

내가 누락 된 사항을 알려주실 수 있습니까? Module2는 Module1을 정상적으로 처리하는 것으로 보이지만 그 위에있는 어떤 메소드에도 액세스 할 수 없습니다. 어떤 도움을 주셔서 감사합니다!

+0

함수가 렌더링 메서드 내부에 선언되고 있으므로 렌더링 모듈과 나란히 배치해야합니다. –

+0

안녕하세요. Javier. Im은 render()와 함께 side-by-side를 선언하려하지만 여전히 동일한 결과를 얻는다. 다르게 수출해야합니까? – nickg

+0

독립 실행 형 내 보낸 함수가 아닌 클래스에 있어야합니다. – aqwert

답변

1

그런 목적으로 React.Component가 필요하지 않습니다. 그냥 평범한 오래된 JS 모듈을 원할뿐입니다.

// ModuleOne.js 
export function square(x) { 
    return x * x; 
} 
export function hello() { 
    return "Hello!"; 
} 

// Another File 
import {square, hello} from "ModuleOne"; 
var module2 = class module2 extends React.Component{ 
    render() { 
     var someNumber = square(1,2); 
     var someMessage = hello(); 
     return (
      <div/> 
     ); 
    } 
} 
export default module2; 
+0

예 감사합니다. 그랬어. 비슷한 것을 시도하고 있었지만 "ModuleOne"의 import {square, hello}에서 {}을 사용하지 않았습니다. – nickg