Реагируйте Индекс Прохода на Реквизит - PullRequest
0 голосов
/ 10 июля 2019

У меня есть модал, который содержит значки, описание и статус, и я хочу передать значки и описания из индекса в модал, я уже передаю статус. в любом случае, чтобы сделать это? извините, я все еще новичок, чтобы реагировать на родной и заранее спасибо

это мой index.js

export const img =
{
   itemStatus: {
        "Open": { name: 'open-book', type: 'entypo', color: '#ffb732', desc:'New Attribut, New Attention'},
        "Approved": { name: 'checklist', type: 'octicon', color: '#3CB371', desc:'Approved by SPV/MNG' },
        "Escalated": { name: 'mail-forward', type: 'font-awesome', color: '#ffb732', desc:'Escalated to SPV/MNG' },
        "Deliver Partial": { name: 'arrange-send-to-back', type: 'material-community', color: '#8B4513', desc:'Some items in a DO have not arrived/was faulty' },
    
    };

а это мой контейнер

class MyRequest extends React.Component {
  constructor() {
    super();
    this.state = {
      currentStatus: null,
      refreshing: false,
      fetchStatus: null
    };
    
      handleShowModal = (status) =>{
      this.setState({
        currentStatus: status,
      });
  }

  handleDismissModal = () =>{
    this.setState({currentStatus: null});
  }
  
  <View style={[styles.panelContainer, status === 'success' ? {} : { backgroundColor: color.white }]}>
              <FlatList
                showsVerticalScrollIndicator={false}
                progressViewOffset={-10}
                refreshing={this.state.refreshing}
                onRefresh={this.onRefresh.bind(this)}
                onMomentumScrollEnd={(event) => event.nativeEvent.contentOffset.y === 0 ? this.onRefresh() : null}
                data={content}
                renderItem={({ item }) => item}
                keyExtractor={(item, key) => key.toString()}
                 />
            </View>
            <IconModal visible={this.state.modalVisible} close={this.handleDismissModal} icon={} status={this.state.currentStatus} desc={} />
  
    }

а это мой модал

const IconModal = (props) => {

    return(
        <Modal 
            isVisible={props.visible}
            onBackdropPress={props.close}
        >
            <View style={styles.dialogBox}> 
                <View style={styles.icon}>
                    <Icon>{props.icon}</Icon>
                </View>

                <View style={styles.text}>
                    <Text style={styles.status}>{props.status}</Text>
                    <Text>{props.desc}</Text>
                </View>
                    <TouchableOpacity onPress={props.close}>
                        <View>
                            <Text style={styles.buttonText}>GOT IT</Text>
                        </View>
                    </TouchableOpacity>
            </View>
            
        </Modal>
    )
}

1 Ответ

0 голосов
/ 10 июля 2019

Немного неясно, как вы планируете сопоставление с индексом img.itemStatus, но вы можете просто ссылаться на нужный объект как таковой.

import img from '....path_to_index.js'

...

// const currentItemStatus = img.itemStatus.Open
// OR
const itemStatus = 'Open' // Or 'Approved', 'Escalated', 'Deliver Partial' 
const currentItemStatus = img.itemStatus[itemStatus]

...

<IconModal
  visible={this.state.modalVisible}
  close={this.handleDismissModal}
  icon={currentItemStatus.name} // Passing name
  status={this.state.currentStatus}
  desc={currentItemStatus.desc} // Passing desc
/>

...

Надеюсь, это было полезно

...