我想弄清楚如何有條件地渲染部分反應。我的情況是,當列表項目處於活動狀態時,應該呈現部分內容。有條件地渲染靜態部分的反應 - MERN
我正在使用引導程序,它有一個可用的活動元素。
我的目標是實現類似對講機的條款頁面的內容:https://www.intercom.com/terms-and-policies#billing
在我的主菜單,我有:
import React from 'react';
import ReactDOM from 'react-dom';
var Terms = require('../overview/terms.jsx');
var Privacy = require('../overview/privacy.jsx');
var Cookies = require('../overview/cookies.jsx');
var Thirdparty = require('../overview/thirdparty.jsx');
var Website = require('../overview/website.jsx');
var Sla = require('../overview/sla.jsx');
var Acceptable = require('../overview/acceptable.jsx');
var Billing = require('../overview/billing.jsx');
var Information = require('../overview/information.jsx');
var Incident = require('../overview/incident.jsx');
var Bug = require('../overview/bug.jsx');
class Menu extends React.Component {
render() {
return (
<div>
<div className = "row">
<div className = "col-md-8 col-md-offset-2 generalhead">
Terms and Policies
</div>
</div>
<div className = "row">
<div className = "col-md-3 col-md-offset-1">
<ul className="list-group">
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "terms">Terms of Service</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "privacy">Privacy Policy</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "cookies">Cookies</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "thirdparty">Third Party Processors</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "website">Website Use</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "sla">Service Level Agreement</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "acceptable">Acceptable Use</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "billing">Billing</a>
<a href="#" className="list-group-item list-group-item-action listitems" data-attribute = "information">Information Security</a>
<a href="#" className="list-group-item list-group-item-action disabled listitems" data-attribute = "incident">Incident Response Plan</a>
<a href="#" className="list-group-item list-group-item-action disabled listitems" data-attribute = "bug">Bug Bounty</a>
</ul>
</div>
<div className = "col-md-6 col-md-offset-1">
<Terms />
<Privacy />
<Cookies />
<Thirdparty />
<Website />
<Sla />
<Acceptable />
<Billing />
<Information />
<Incident />
<Bug />
</div>
</div>
</div>
);
}
}
module.exports = Menu;
每個列表項有一個名爲數據屬性。當該屬性是活動項目時,我想要渲染該部分。目前他們都在渲染。
我已閱讀上的反應條件呈現文檔:https://facebook.github.io/react/docs/conditional-rendering.html
我試圖界定一個const稱爲主動,我認爲可能利用引導類的 - 但是,這是行不通的。對於如何做到這一點,我必須得到錯誤的結局。我看起來像一個簡單的隱藏節目爲一個軌道js切換。我無法弄清楚如何開始解決這個問題。
任何人都可以給我一個正確的方向指導嗎?
感謝您的幫助。我試圖使用這個建議。我認爲問題的一部分可能是我使用擴展React來創建類而不是'create.class'。我改變了這個說法,試圖確保「this」綁定,{this.state.active.bind(this)=='terms'&& }。我得到一個錯誤,說TypeError:無法讀取null的屬性'active' –
Mel
它與'擴展React.Component'無關,只是意味着你擴展了可以提供反應的Component類。這是你如何製作類組件。或者你可以'擴展PureComponent'。不需要'將(this)'綁定到this.state.active。除非你在那裏存儲一個你打算用作回調的函數,但是你會在類的構造函數中進行綁定。你需要在你的類上有一個構造函數,並且使用'super',這樣你就可以訪問'this',然後設置類的初始狀態。閱讀這個https://facebook.github.io/react/docs/react-component.html –
@KyleRichardson - 謝謝 - 如果我嘗試使用FuzzyTree的建議,我得到一個錯誤,說:TypeError:無法讀取屬性'活躍'的空值。谷歌搜索錯誤提示綁定聲明。你能看到一些概述有相關的解釋嗎? – Mel