1. 程式人生 > >在ReactNative中封裝多選框控制元件

在ReactNative中封裝多選框控制元件

1. 第三方元件的安裝

在ReactNative工程的命令列下安裝

npm i react-native-check-box –save

2. 本地控制元件的封裝

2.1 import和常量定義,可根據工程自行調整

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import {
    StyleSheet,
    View,
    Text,
    Image,
} from 'react-native';

import CheckButton from
'react-native-check-box'; import { setSpText, scaleSize } from './../core/screen-util'; import { textFontSize, textColor } from './../config/genericStyle'; const ICON_CHECKED = require('./../../image/icon_checkedbox.png'); const ICON_UNCHECKED = require('./../../image/icon_uncheckedbox.png');

2.2 元件程式碼

所用到的樣式自行新增,可以支援左側文字和右側文字,目前為右側文字

export default class CheckBox extends Component {
    constructor(props) {
        super(props);
    }

    onClick(data) {
        data.checked = !data.checked;
        this.props.onClick(data);
    }

    renderRightText(data) {
        return (<Text style={styles.rightText}>{data.text}</Text>);
    }

    render() {
        let data = this
.props.data; return ( <CheckButton style={{ padding: scaleSize(8) }} onClick={() => this.onClick(data)} isChecked={data.checked} rightTextView={this.renderRightText(data)} checkedImage={<Image source={ICON_CHECKED} style={styles.image} />} unCheckedImage={<Image source={ICON_UNCHECKED} style={styles.image} />} />); } }

3. Demo

使用當前封裝的CheckBox元件,必備引數如下
CheckBox引數表

簡單的例子:

...
import CheckBox from './../../lib/component/checkbox';
...
    onChecked(data) {
        console.log('click : ' + JSON.stringify(data));
    }

    render() {
        let data = [{ 'text': 'testcheckbox', 'checked': false }, { 'text': 'checkbox2', 'checked': false }];
        return (
            <View style={{ flexDirection: 'row' }}>
                <CheckBox data={data[0]} onClick={this.onChecked.bind(this, data[0])} />
                <CheckBox data={data[1]} onClick={this.onChecked.bind(this, data[1])} />
            </View>
        );
    }
...

相關推薦

ReactNative封裝控制元件

1. 第三方元件的安裝 在ReactNative工程的命令列下安裝 npm i react-native-check-box –save 2. 本地控制元件的封裝 2.1 i

Extjs 2.3 的控制元件 muiltiCombox

在製作報表的查詢條件時,需要有多選下拉框,Ext 2.3預設沒有實現。找來參考資料1的程式碼測試,發現當有多個多選下拉框時,會有資料混亂不能選擇的情況。對其中原始碼進行了修正,現在可以正常使用。主要修改了初始化[this.selections初始化]和setValue()函

【Bootstrap Table】在指定列新增下拉控制元件,並獲取所

背景   最近在使用Bootstrap table ,有一個在某一列新增一個下拉列表,並且通過 “getAllSelections”方法獲取所選行的需求,在實現這個功能的時,走了一些彎路,遇到了一些坑。所以今天總結出來,既是自己的學習,也分享給大家,

金蝶bos 自定義UI介面新增複控制元件,並且做業務處理

 /**      * 顯示工程型別      * @author daihao      * 

Winform/C#入門程式設計之第二部分常用控制元件(五:單控制元件RadioButton)

簡介:         介紹單選框控制元件RadioButton。當多個 RadioButton 控制元件出現時,使使用者能夠從一組選項中選擇一個選項。   介紹: 1.屬性 常用屬性

Winform/C#入門程式設計之第二部分常用控制元件(四:複控制元件CheckBox)

簡介:         介紹複選框控制元件CheckBox。常用在某些功能的是否啟用判斷。   介紹: 1.屬性 常用屬性 Name 獲取或設定控制元件的名稱。

純CSS設定Checkbox複控制元件的樣式

在本教程中,我們將建立5個不同的選擇框,你可以在你的網站上使用它。 首先,需要新增一段CSS隱藏所有的Checkbox複選框,下面我們會改變它的外觀。要做到點需要新增一段程式碼到你的CSS檔案中。 /** * 隱藏預設的checkbox */ input[type=

Bootstrap Table刪除

先上程式碼,後面再進行詳細解釋:   // 刪除按鈕事件 $("#remove").on("click", function () { // $("#table").bootstrapTable('getSelections');為boo

JavaScript獲取遍歷的唯一屬性值(如id)

在實現購物車時遇到了一個問題:購物車每條資料都是遍歷出來的(屬於未來資料),當用多選框執行選擇操作時,總是無法獲取每個選項的特定ID值 <ul class="commodity_list_term"> {volist name="data" i

Dev控制元件 TreeList的使用,繫結多級樹以及的三種狀態

TreeList控制元件可以同時顯示樹結構和其他資料列,即在一個列上建立父子關係展開或收縮,同時還可以顯示其他列的內容。 在TreeList中同時引入了 Node和 Columns概念, 第一列為樹結構, 其餘列為資料列, 任何列都可作為樹結構列(即拖

asp.net(c#)web伺服器控制元件checkboxlist控制元件

<%@ Page Language="c#" %> <script runat="server"> void Page_Load() { string msg = "You have selected the following items:<b

element-ui時間控制元件

直接上程式碼: <el-date-picker size="small" v-model="nowDate" @change="getSTime" type="datetimerange" range-separator=

angularjs 下拉 控制元件angularjs ui-select2

      angularjs ui-select2:http://jsfiddle.net/jLD42/4/(這個網站測試通過),網站內容如下:找了很多其他的網站都沒用,這個是測試通過的,需要匯入所需要的js檔案,需要的圖片:      這個如果控制元件寬度是比較窄的話

在Vue迴圈生成CheckBox時的注意事項

多選框是一種非常常見的功能,有時候我們會根據後臺返回的資料進行多選框渲染,之前做專案時遇到迴圈生成多選框時,v-model繫結的值會隨著選中與取消改變,但頁面卻不會變化 的情況,後來測試了一下,發現多選框的資料類似只能在頁面上渲染一次.先看一下我專案中遇到的情況: &n

freemarker判斷一個字串是否包含另一個字串(select資料回顯)

開發中用到了select多選框,所以資料回顯就要換一種方式解決。多選框返回的資料是一個用逗號分隔的字串,比如“a,b,c”,回顯的時候用contains判斷從而決定是否對每個option進行checked。 <#if "a,b,c,"?contains("a")>

MFC單控制元件Radio Button與選擇控制元件Chexk Box使用指南

本文是學習雞啄米VS2010入門教程的心得體會,特此記錄下來方便日後查詢。 單選控制元件就是點一下前面會有一個圓圈的控制元件,選擇框就是點一下前面會打√的控制元件。 1.首先隨便起個名建立一個MFC對話方塊專案,這裡我起名為Univers。 2.新建2個Group Box控制元件,把C

mpvue封裝的彈

效果圖 子元件需要接受(父元件)兩個值 isShow:是否顯示元件的 checkboxArr:可供多選的陣列 <template> <div class="modal_mask" v-if="isS

AngularJS按鈕和的動態繫結

AngularJS中的單選按鈕的動態繫結十分簡單,寫法如下: <input type="radio" name="sex" value="man" ng-model="sex">男 <input type="radio" name="se

從一個將選項移動到另一的js小程式碼

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict

vue通過v-for迴圈遍歷得到的值如何加到dom節點的屬性以及vue將選中的值渲染到頁面

話不多說直接上程式碼 <script> Vue.component('CheckBox',{ props:{ values:{ type:Array