React Native Paper - Card.Cover источник - строка против массива с полем URI, какой вариант лучше? - PullRequest
0 голосов
/ 23 марта 2019

У меня есть простой React Native проект, который работает нормально .

Сценарий 1

Вот фрагмент: package.json:

{
  ...
  "dependencies": {
    ...
    "react-native": "^0.58.6",
    ...
  }
  ...
}

Вот фрагмент кода:

...
import { ... } from 'react-native';
import { Card } from 'react-native-paper';
...
<Card style={styles.plane} key={i}>
    <Card.Cover source={{ uri: plane.image }} />
    {
        (plane.title || plane.caption || plane.text) &&
        <Card.Content>
            { plane.title && <Title>{i+1}. {plane.title}</Title> }
            { plane.caption && <Caption>{plane.caption}</Caption> }
            { plane.text && <Paragraph>{plane.text}</Paragraph> }
        </Card.Content>
    }
</Card>
...

Обратите внимание: source={{ uri: plane.image }}.

Сценарий 2

Затем я обновил файл package.json следующим образом (сохраняя ту же версию: react-native-paper):

{
  ...
  "dependencies": {
    ...
    "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
    ...
  }
  ...
}

Затем, чтобы проект снова заработал, у меня естьиспользовать следующий код:

import { ... } from 'react-native';
import { Card } from 'react-native-paper';
...
<Card style={styles.plane} key={i}>
    <Card.Cover source={plane.image} />
    {
        (plane.title || plane.caption || plane.text) &&
        <Card.Content>
            { plane.title && <Title>{i+1}. {plane.title}</Title> }
            { plane.caption && <Caption>{plane.caption}</Caption> }
            { plane.text && <Paragraph>{plane.text}</Paragraph> }
        </Card.Content>
    }
</Card>

Пожалуйста, обратите внимание на: source={plane.image}.

Знаете ли вы, почему после изменения на package.json мне нужно изменить значение атрибута: source?

Какая версия package.json более рекомендуется? Сценарий 1 или Сценарий 2 ?

Спасибо!

1 Ответ

0 голосов
/ 23 марта 2019

Вы должны отдавать предпочтение версиям в вашем package.json, как в Сценарии 1 .Это позволяет вам легко обновляться до более новых версий react-native с помощью команды npm update.

Причина, по которой вы должны изменить способ передачи source, заключается в том, что вы используете разные версии response-native вкаждый сценарий.Ваш первый сценарий использует v0.58, а второй использует разветвленную версию response-native из expo.

...