Как я создаю Раскрывающееся Диалоговое окно в Silverlight?

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

Вот пример закуски https://snack.expo.io/S1-LKIyQE

import React from 'react';
import { Text, View, StyleSheet, FlatList, SafeAreaView } from 'react-native';

export default class App extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
      productData: []
    }
  }

  async componentDidMount () {
    await this.getData();
  }

  async getData() {
    try {
      let url ='https://drawtopic.in/projects/wordpress/wp-json/wc/v2/products?consumer_key=ck_044491712632ef889ec13c75daff5879a8291674&consumer_secret=cs_a8e16c732e1812017e15d278e1dce2765a88c49b'
      let response = await fetch(url, { method:'GET' });
      let responseJson = await response.json();
      this.setState({productData: responseJson});
    } catch (err) {
      console.warn(err);
    }
  }

  renderItem = ({item}) => {
      return (
      
        {item.name}
      
      );
    }

  keyExtractor = (item, index) => {
    return index.toString();
  }


  render() {
    return (
      
      
      
    )
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: 'white'
  },
  mainItem: {
    width:200,
    height: 80, 
    justifyContent: 'center', 
    alignItems: 'center', 
    margin: 10, 
    backgroundColor: 'yellow',
    borderColor: 'black',
    borderWidth: 1
  },
});

Здесь я использовал async/await, так как он может сделать для намного более чистого и ясного кода. Это отличная статья о различиях между promises и async/await https://medium.com/@bluepnume/learn-about-promises-before-you-start-using-async-await-eb148164a9c8 [ 116].

Я также дал вам быстрый пример того, как использовать FlatList для отображения ваших данных. Вы должны проверить документы о том, как правильно его использовать https://facebook.github.io/react-native/docs/flatlist

Если вы хотите изменить способ отображения каждого элемента на экране необходимо обновить метод renderItem.

16
задан 4 revs 28 July 2009 в 07:05
поделиться

6 ответов

Я знаю, что вопрос задан для решения Silverlight 2, но в Silverlight 3 (сейчас бета, RTW в июле 2009 г.) есть встроенный ChildWindow, который может делать все, что вы ищете.

12
ответ дан 30 November 2019 в 22:24
поделиться

Я не нашел идеальное решение также. Самое близкое, которое я видел, является этим: Используя Всплывающее окно для создания Диалогового класса

Если нормально быть немодальным, можно попробовать это использование подсказки HtmlPage. PopupWindow (). Как Открыть Окно браузера

5
ответ дан 30 November 2019 в 22:24
поделиться

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

  1. Я создал Прямоугольник (названный "Щитом"), который покрывает мою область целого приложения. Это существует сверху всего в главном приложении. Я установил кисть заливки на Белый, и кисть непрозрачности к 81% так, чтобы содержание главного приложения показало через, но слегка (как в отключенном). Затем удостоверьтесь, что "Щит" является тестируемым хитом. Теперь, когда "Щит" видим, он также, в действительности, заблокирует весь вход к средствам управления ниже (по крайней мере, от мыши, еще не попробовали клавиатуру). Когда приложение инициализирует, установите видимость "Щита" на Свернутый. В том состоянии это не заблокирует вход к главному приложению.
  2. Диалоговое окно затем создается на другом элементе холста, который существует в z-порядке сверху щита. Обычно диалоговое окно будет невидимо, но когда мне будет нужно оно, я просто установил "Щит" на видимый, и диалоговое окно к видимому. Так как диалоговое окно сверху "Щита", я получаю очень модальное поведение. Когда диалоговое окно закрывается, сделайте обоих, диалоговый холст холста и "Щита", невидимый снова и главное приложение, снова активен.

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

1
ответ дан 30 November 2019 в 22:24
поделиться

У меня было такое же требование, и Построение базового модального диалогового окна с использованием пользовательского элемента управления от ScottGu было лучшим решением, которое соответствовало моим требованиям.

0
ответ дан 30 November 2019 в 22:24
поделиться

Вот бесплатная библиотека, которая предоставляет такую возможность: http://www.vectorlight.net/demos/popup_dialogs.aspx

0
ответ дан 30 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

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