Реквизит отправить после третьего нажатия на элемент

Прежде всего, при поиске в документации на ящик я обнаружил несколько вещей.

Прежде всего, вы используете UIWebview, который устарел. Вы должны использовать WKWebView. Из документов :

Важно. Начиная с iOS 8.0 и OS X 10.10, используйте WKWebView для добавления веб-контента в ваше приложение. Не используйте UIWebView или WebView.

При поиске документации для WKWebView существует способ, который вы можете использовать, называемый load (_:) .

Таким образом, вы бы переопределили этот метод, изменив URL-адрес, чтобы он содержал (isFromMobile = true), а затем вызвал супер-метод с обновленным URL-адресом.

Надеюсь, это может помочь.

1
задан atub 19 January 2019 в 06:49
поделиться

2 ответа

Лучшая часть в реакции - это состояние, которое вы не используете в компоненте MovieDescription, поэтому перемещайте переменные data и data1 в состояние компонента, чтобы при каждом выполнении setState компонент отображался с обновленными данными. С вашим текущим кодом компонента MovieDescription, хотя вы и получаете вызовы, присваиваете данные переменным, вы не будете визуализировать компонент, потому что вы переопределяете переменную, чтобы он не вызывал перерисовку.

Также используйте componentDidMount вместо метода componentWillMount. Как вы знаете, componentWillMount устарел в реакции версии 16.

Вот обновленный код компонента MovieDescription

   class MovieDescription extends React.Component {
        constructor(props){
            super(props);
            this.state = {
                data:{},
                data1: {}
            }
        }
       componentDidMount() {
     fetch(`https://api.themoviedb.org/3/movie/${this.props.id}?api_key=${api_key}&language=en-US`)
        .then(response => response.json())
        .then(json => {
            this.setState({data : json});
        });
               fetch(`https://api.themoviedb.org/3/movie/${this.props.id}/credits?api_key=${api_key}`)
        .then(response => response.json())
        .then(json => {
            this.setState({data1: json});
        });
}
componentWillUpdate() {
       fetch(`https://api.themoviedb.org/3/movie/${this.props.id}?api_key=${api_key}&language=en-US`)
        .then(response => response.json())
        .then(json => {
            this.setState({data : json});
        });
       fetch(`https://api.themoviedb.org/3/movie/${this.props.id}/credits?api_key=${api_key}`)
        .then(response => response.json())
        .then(json => {
            this.setState({data1 :json});

        });
     }
     render() {
          return(
                   <div>{data.overview}</div>
                   <div>{data.runtime}</div>
          );
     }
 }
.
0
ответ дан Hemadri Dasari 19 January 2019 в 06:49
поделиться

в MovieDescription, поместите объекты данных в состояние. когда вы возвращаете json из выборок, для обновления данных используется setState({}). Я думаю, что это должно решить вашу проблему. В идеале вы должны делать все это в основном компоненте и передавать данные в качестве реквизитов дочерним компонентам. Таким образом, вам не нужно беспокоиться о состояниях в трех объектах, только в одном.

0
ответ дан dbenson24 19 January 2019 в 06:49
поделиться
Другие вопросы по тегам:

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