react入坑(三)選中未選中

// import React from 'react';
// import ReactDOM from 'react-dom';
// import './index.css';
// import App from './App';
// import * as serviceWorker from './serviceWorker';

// ReactDOM.render(<App />, document.getElementById('root'));

// // If you want your app to work offline and load faster, you can change
// // unregister() to register() below. Note this comes with some pitfalls.
// // Learn more about service workers: https://bit.ly/CRA-PWA
// serviceWorker.unregister();


import React from 'react';
import ReactDOM from 'react-dom';



class CheckBox extends React.Component {
    state = {
        checked: false // 默認沒有選中
    };
    // 交替(選中/沒有選中)的狀態
    onClickCheckbox() {
        this.setState(prevState => {
            return {
                checked: !prevState.checked
            };
        });
    }
    render() {
        const checkboxClassArr = ['ui-checkbox'];
        // 如果選中,就添加一個 checked class 來給 css 做樣式
        if(this.state.checked) {
            checkboxClassArr.push('checked');
        }

        // 組合最後的 class 結果
        const checkboxClass = checkboxClassArr.join(' ');

        return (
            <div onClick={this.onClickCheckbox.bind(this)}>
                {/* 這裏模擬圖標 */}
                <span className={checkboxClass}>
                    <i className="icon-checkbox"></i>
                </span>
                {/* 這裏模擬圖標內容 */}
                <span>{this.state.checked ? '選中' : '沒有選中'}</span>
            </div>
        );
    }
}
ReactDOM.render(
    <CheckBox />,
    document.getElementById('root')
);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章