2016-09-09 2 views
1

JSX에서 3 진 연산자를 사용하여 사용자가 선택한 일부 상태에 따라 일부 구성 요소를 생성합니다. 내가하고 싶은 것은 컴포넌트를 생성하는 것과 함께 JavaScript 함수 나 어떤 문장을 호출하는 것이다.React.js의 3 진 연산자를 사용하여 XML 함수를 호출합니다.

이 내 관련 코드 : 도움의 어떤 종류가 이해할 수있을 것이다

{ 
     this.state.isTextEditor === 'yes' 
      ? 
     <Row> 
      <Col sm={12}> 
      <TextEditor placeholder="Job description here"/> 
      </Col> 
     </Row> 
      (and someGlobalVariable += 'classActive') 
      : 
     ...//same code as above 
} 

:

  { 
      this.state.isTextEditor === 'yes' 
       ? 
      <Row> 
       <Col sm={12}> 
       <TextEditor placeholder="Job description here"/> 
       </Col> 
      </Row> 
       : 
      <FormGroup controlId="companySignupFormJD"> 
       <Row> 
       <Col sm={12}> 
        <SelectFile 
        ref="JD-file" 
        image={false} 
        controlId={'JD-file'} 
        supportedFiles={supportedDocs} 
        btnLabel={'Select File'} 
        helpText={'PDF, DOC DOCX or TXT'} 
        onChange={::this.setJDFile} /> 
       </Col> 
       </Row> 
      </FormGroup> 
      } 

내가하고 싶은 것은이 같은 것입니다.

+0

왜 'if'문을 사용하지 않습니까? –

+0

은 JSX와 함께 사용할 수 없습니다. –

+0

@Arslan 당신은 절대 JSX에서 당신이 좋아하는 JS 구문을 사용할 수 있습니다. 왜 네가 그렇게 할 수 없다고 생각하는지 모르겠다. –

답변

2

, 자세한 내용은 여기 여기 https://facebook.github.io/react/tips/if-else-in-JSX.html

(위) 문서 페이지에서 관련 코드를 찾을 수 있습니다

var loginButton; 
if (loggedIn) { 
    loginButton = <LogoutButton />; 
} else { 
    loginButton = <LoginButton />; 
} 

return (
    <nav> 
    <Home /> 
    {loginButton} 
    </nav> 
); 

따라서 귀하의 경우는

일 것
 if(this.state.isTextEditor === 'yes'){ 
      data = <Row> 
      <Col sm={12}> 
       <TextEditor placeholder="Job description here"/> 
      </Col> 
      </Row>; 
     } else { 
     data = <Row> 
      <Col sm={12}> 
       <TextEditor placeholder="Job description here"/> 
      </Col> 
      </Row>; 
     } 

이상에서는을 추가하면 jsx가 렌더링되어야합니다.

+0

감사합니다! if 문은 JSX 외부에서 사용되었지만 사용자의 대답은 내가 원하는 것을 성취하는 데 도움이되었습니다. –

0

3 진수 연산자는 세 가지를 처리하기 때문에 호출됩니다. 하나의 3 진 구문에서 여러 연산을 스핀 오프 할 수는 없습니다. 그들은 주로 값을 저장하거나 하나의 함수를 호출하는 데 사용됩니다.

그냥 if/else 문을 사용하십시오. 그들은 일반적으로 어쨌든 더 명쾌하다. JSX에서 if를 사용하는 방법

+0

이 정보를 제공해 주셔서 감사합니다. 하지만 if/else를 JSX와 함께 사용할 수는 없습니다. 주위에 어떤 방법이 있어야합니다. –

+0

아, 죄송합니다. JSX에 익숙하지 않습니다. 나는 나의 대답을 코멘트로 바꿀 것이다. – joh04667

관련 문제