2017-02-07 21 views
29

Tôi có một thành phần thông báo và tôi có cài đặt thời gian chờ cho nó. sau khi hết giờ, tôi gọi số this.setState({isTimeout:true}).Có thể trả về sản phẩm nào trong chức năng phản hồi không?

Những gì tôi muốn làm là nếu đã timeout, tôi chỉ muốn làm gì:

render() { 
    let finalClasses = "" + (this.state.classes || ""); 
    if (isTimeout){ 
     return(); // here has some syntax error 
    } 
    return (<div>{this.props.children}</div>); 
    } 

vấn đề là: trở lại(); // đây có một số lỗi cú pháp

Trả lời

65

Có bạn có thể, nhưng thay vì trống, chỉ cần trả null nếu bạn không muốn render mọi thứ, như sau:

return (null); 

Theo DOC:

booleans (true/false), null, and undefinedtrẻ em hợp lệ, họ sẽ được Ignored có nghĩa là họ chỉ đơn giản là không làm.

Tất cả những JSX biểu thức sẽ trả cho điều tương tự:

<div /> 

<div></div> 

<div>{false}</div> 

<div>{null}</div> 

<div>{undefined}</div> 

<div>{true}</div> 

Ví dụ:

Chỉ giá trị lẻ sẽ được trả lại, vì cho dù giá trị chúng ta đang trở về null.

const App = ({ number }) => { 
 
    if(number%2) { 
 
    return (
 
     <div> 
 
     Number: {number} 
 
     </div> 
 
    ) 
 
    } 
 
    
 
    return (null);   //===> notice here, returning null for even values 
 
} 
 

 
const data = [1,2,3,4,5,6]; 
 

 
ReactDOM.render(
 
    <div> 
 
    {data.map(el => <App key={el} number={el} />)} 
 
    </div>, 
 
    document.getElementById('app') 
 
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 

 
<div id='app' />

+0

bạn có thể thử để giúp giải quyết vấn đề của tôi? Tôi hứa rằng tôi sẽ bỏ phiếu cho bạn. https://stackoverflow.com/questions/49179234/cannot-proper-handle-error-in-ajax-from-rxjs – user

+1

@user tôi đã kiểm tra các câu hỏi, xin lỗi không phải là nguyên nhân của vấn đề, tôi nghĩ bạn có giải pháp từ ai đó :) –

1

Có bạn có thể trả về một giá trị rỗng từ phương thức hiển thị phản hồi.

Bạn có thể trả lại bất kỳ những điều sau đây: false, null, undefined, or true

Theo docs:

false, null, undefinedtrue là trẻ em hợp lệ. Họ chỉ đơn giản là không hiển thị.

Bạn có thể viết

return null; or 
return false; or 
return true; or 
return undefined; 

Tuy nhiên return null là ưa thích nhất vì nó có nghĩa rằng không có gì là trở

Các vấn đề liên quan