как управлять активным состоянием в навигационной панели начальной загрузки в ответ?

Я знаю, что активным классом нужно управлять вручную в начальной загрузке. Я делал это несколько раз с jQuery.

Мой новейший проект работает с реакцией.

Я знаю, что я не должен устанавливать классы в доме с помощью jQuery при использовании реакции. Но как это сделать правильно?


person Alex    schedule 21.05.2015    source источник
comment
ну, извините за дубликат - но, честно говоря, я не понял ответа в том другом посте. Напротив, я понимаю оба ответа Джереми Д. и PhInside, так что, черт возьми...   -  person Alex    schedule 22.05.2015


Ответы (2)


Вам просто нужно указать active значение вкладок в вашей render функции. Чтобы узнать, должна ли вкладка иметь значение для свойства className, нужно где-то его хранить.

Как вы храните что-то в реагирующем компоненте? Вы используете state. Вы не показали никакого кода, но вы можете просто отслеживать, какая вкладка в данный момент активна в вашем состоянии.

Вы могли бы, например, это:

getInitialState: function() {
    return { activeTabClassName: "tab1" };
}

render: function() {
    return (
        <ul>
            <li className={(this.state.activeTabClassName === "tab1") ? "active" : ""}></li>
            <li className={(this.state.activeTabClassName === "tab2") ? "active" : ""}></li>className            </ul>
    );
}

Внимание! Этот блок кода является лишь одним примером и не тестировался. (Есть несколько способов сделать это).

Вы также можете проверить это: Переключение класса на вкладках с помощью React.js

person Jeremy D    schedule 21.05.2015
comment
очень хорошо объяснил - я понял: передал имя активной навигации как состояние, а затем установил className при рендеринге. Большое спасибо! - person Alex; 22.05.2015
comment
о да, это именно то, что я искал!! React до сих пор великолепен .. - person Manjunath Satyamurthy; 26.07.2017

Вы можете использовать react-router для автоматического или ручного управления активным состоянием в навигационной панели начальной загрузки.

person Phi Nguyen    schedule 21.05.2015
comment
Я обязательно попробую это решение, большое спасибо! - person Alex; 22.05.2015