Как импортировать компоненты Polaris React?

Частично, почему вы видите эту ошибку, потому что компилятор не может проверить, что коммутатор является исчерпывающим без запуска кода. Выражение 0...65535 создает структуру ClosedInterval, и когда оператор switch выполняется, он должен спросить эту структуру, если значение quantity находится в интервале. Там есть место для изменения во время выполнения, поэтому компилятор не может проверить его во время компиляции. (См. Проблема с остановкой .)

В более общем плане компилятор не может обнаружить исчерпывающий переключатель для целых значений - даже если вы добавляете конкретные случаи для каждого целочисленного значения (case 0: ... case 1: ... ... case 65535:), он не знает, что ваш коммутатор является исчерпывающим. (Теоретически это могло бы: рассмотрите подачу запроса функции об этом, если это то, что вы хотели бы видеть.)

Как бы то ни было, есть два сценария, в которых Swift может обнаружить полноту и позволить вам опустить предложение default: перечисление и привязка значений в кортежах. @ Ответ NateCook охватывает перечисления - если вы включаете значение enum и имеете case в своем switch для каждого case в перечислении, вам не нужно default. Вы также не нуждаетесь в метке default, если вы включаете кортеж и связываете все возможные комбинации значений, как показано в в книге Swift :

switch anotherPoint {
case (let x, 0):
    println("on the x-axis with an x value of \(x)")
case (0, let y):
    println("on the y-axis with a y value of \(y)")
case let (x, y):
    println("somewhere else at (\(x), \(y))")
}

Вы может обобщить это правило как «если система типа знает о возможных значениях вашего типа, она может обнаружить switch полноту», но тот факт, что существует уровень, на котором система типов не знает диапазон возможных (например, ) UInt32 значения являются своего рода расщепляющими волосками ...

2
задан Lull 16 January 2019 в 13:35
поделиться

1 ответ

Вы можете импортировать его так:

import {AppProvider, Page, Card, Button} from '@shopify/polaris';
import '@shopify/polaris/styles.css';

И использовать его вот так

<AppProvider>
    <Page title="Example app">
      <Card sectioned>
        <Button onClick={() => alert('Button clicked!')}>Example button</Button>
      </Card>
    </Page>
  </AppProvider>

Вот живой пример: https://stackblitz.com/ edit / response-eaexfs

Более подробная информация здесь: https://www.npmjs.com/package/@shopify/polaris

0
ответ дан Daniel Doblado 16 January 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: