/** * Created by zack on 2018/4/27. */ import { View, Text, StyleSheet, TouchableOpacity, Platform, Image } from 'react-native' import React, {Component} from 'react' import {NavigationBarHeight, TabBarHeight, ScreenDimensions} from '../../../utils/DimensionsTools' export default class VocabularyTextView extends Component { constructor(props) { super(props) this.state = { selectedIndex: -1, correctIndex: props.correctIndex, isVerified: props.isVerified } } componentWillReceiveProps(props) { this.setState({ correctIndex: props.correctIndex, isVerified: props.isVerified }) } renderItems() { let itemTitles = [{text: '单词', noun: 'dān cí '}, {text: '单词', noun: 'dān cí '}, {text: '单词', noun: 'dān cí '}, {text: '单词', noun: 'dān cí '}] let items = [] let deselectImageSource = require('../../../resources/images/TabBar/Learn/btn_normal.png') let selectImageSource = require('../../../resources/images/TabBar/Learn/btn_seleted.png') let selectCorrectedImageSource = require('../../../resources/images/TabBar/Learn/btn_correct.png') for (let i =0; i < itemTitles.length; i ++) { let imageSource = null if (!this.state.isVerified) { //还没有进行验证 if (i === this.state.selectedIndex) { imageSource = selectCorrectedImageSource }else { imageSource = deselectImageSource } }else { //已经验证了 if (this.state.selectedIndex === this.state.correctIndex) { // 答对了 if (i === this.state.selectedIndex) { imageSource = selectCorrectedImageSource }else { imageSource = deselectImageSource } }else { //回答错误了 if (i === this.state.selectedIndex) { imageSource = selectImageSource }else if (i === this.state.correctIndex) { imageSource = selectCorrectedImageSource }else { imageSource = deselectImageSource } } } let item = ( { this.props.didSelectedItem(i) this.setState({selectedIndex: i}) }} key = {i} > {itemTitles[i].text} {itemTitles[i].noun} ) items.push(item) } return items } render() { return ( {this.renderItems()} ); } } const styles = StyleSheet.create({ View: { width: ScreenDimensions.width, height: 208, justifyContent: 'space-between', alignItems: 'center' }, ItemBgView: { flexDirection: 'row', alignItems: 'center', }, ImageView: { width: 22, height: 22, }, Text: { fontSize: 16, marginLeft: 8, color: '#333333' } })