в режиме без отладки мой плоский список не выполняется полностью - PullRequest
0 голосов
/ 29 сентября 2018

Я работаю над приложением по реакции native.У меня возникла проблема. Когда мое приложение работает в режиме отладки, оно работает очень хорошо. Но в режиме без отладки мой плоский список не выполняется полностью.например: при рендеринге моя плоская дата списка недопустима.

  <FlatList
              style={{ flex: 1 }}
              extraData={this.state}

              data={this.state.data}
              renderItem={this.renderItem.bind(this)}
              keyExtractor={item => item._id.toString()}
              ListFooterComponent = { this.Render_Footer.bind(this) }
          />

и Render Item by:

renderItem({item}) {
    console.log(item)
    return <View 

        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{fontFamily: Font.main, fontSize: 12}}>{I18n.t('Type')}</Text>
            <Text style={{fontSize: 12, fontFamily: Font.main}}>{I18n.t(item.type)}</Text>

        </View>
        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{fontFamily: Font.main, fontSize: 12}}>{I18n.t('OrderDate')}</Text>
            <Text style={{
                fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main, color: Color.Gray
                , fontSize: 12
            }}>{this.state.isrtl ? getshamsidate(item.effective_time) : getmiladdate(item.effective_time)}</Text>

        </View>
        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{
                fontFamily: Font.main,
                color: item.status === 'pardakht' ? Color.green : Color.primarycolor,
                fontSize: 12
            }}>{I18n.t('TotalAmount')}</Text>
            <Text style={{
                fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main,
                color: item.status === 'pardakht' ? Color.green : Color.primarycolor
                ,
                fontSize: 12
            }}>{addCommas(item.amount)} {I18n.t('Toman')}</Text>

        </View>
        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{fontFamily: Font.main, fontSize: 12}}>{I18n.t('Status')}</Text>
            {
                item.status === 'SUCCESS' ?
                    <View style={{flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}>
                        <Icon
                            style={{fontSize: 10}}
                            name='checkmark'


                        />
                        <Text style={{
                            fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main,
                            paddingLeft: 5,
                            paddingRight: 5
                            ,
                            fontSize: 12
                        }}>{I18n.t(item.status)}</Text>

                    </View>
                    :
                    <View style={{flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}>
                        <Icon
                            style={{fontSize: 10, color: 'red'}}
                            name='close'


                        />
                        <Text style={{
                            fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main,
                            color: Color.Red,
                            paddingLeft: 5,
                            paddingRight: 5
                            ,
                            fontSize: 12
                        }}>{I18n.t(item.status)}</Text>
                    </View>

            }


        </View>
        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{fontFamily: Font.main, fontSize: 12}}>{I18n.t('PreviousCredit')}</Text>

            <View style={{flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}>

                <Text style={{
                    fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main,
                    paddingLeft: 5,
                    paddingRight: 5
                    ,
                    fontSize: 12
                }}>{item.balance_before !== null ?
                    addCommas(item.balance_before.toString()) : 0
                } {I18n.t('Toman')}
                </Text>
            </View>


        </View>
        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{fontFamily: Font.main, fontSize: 12}}>{I18n.t('NextCredit')}</Text>
            <View style={{flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}>

                <Text style={{
                    fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main,
                    paddingLeft: 5,
                    paddingRight: 5
                    ,
                    fontSize: 12
                }}>{item.balance_after !== null ?
                    addCommas(item.balance_after.toString()) : 0
                } {I18n.t('Toman')}
                </Text>
            </View>


        </View>
        <View style={{flexDirection: 'row', justifyContent: 'space-between'}}>
            <Text style={{fontFamily: Font.main, fontSize: 12}}>{I18n.t('bankcorrelationid')}</Text>
            <View style={{flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}>

                {item.debit !== undefined ?
                    <Text style={{
                        fontFamily: this.state.isrtl ? Font.main_persian_digit : Font.main,
                        color: Color.linkcolor,
                        paddingLeft: 5,
                        paddingRight: 5
                        ,
                        fontSize: 12
                    }}>{item.debit.bank_corelation_id}
                    </Text> : null}
            </View>


        </View>

        {
            Object.keys(item.cart).length !== 0 ?
                <TouchableOpacity style={{flexDirection: 'row', justifyContent: 'space-between', paddingTop: 5}}
                                  onPress={() => {
                                      this.props.navigation.navigate('TransAction', {product: item.cart})
                                  }
                                  }
                >
                    <Text style={{
                        fontFamily: Font.main,
                        color: Color.circleblu,
                        fontSize: 12
                    }}>{I18n.t('Orderdetails')}</Text>


                    <View style={{flexDirection: 'row', justifyContent: 'center', alignItems: 'center'}}>
                        <Icon
                            style={{fontSize: 14, color: Color.circleblu}}
                            name={this.state.isrtl ? 'arrow-back' : 'arrow-forward'}


                        />

                    </View>


                </TouchableOpacity>
                : null
        }

    </View>

}

Приведенный выше код, рендеринг моего элемента в flatlist. в режиме отладки работает оченьхорошо, но в режиме релиза дата в undefinedNaN: Nan показала

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

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

убедитесь, что строка даты в вашей новой дате («your_date») имеет формат ISO с символом «T» в строке, например «2018-05-02T12: 00:00)».таким образом, ваша функция даты должна работать.

0 голосов
/ 29 сентября 2018

Я нашел решения, эта проблема для JavaScript в Android. Я решен с помощью moment.js

...