React Native, вызывающий функцию из другой в рендеринге

#javascript #html #function #react-native

#javascript #HTML #функция #реагировать-родной

Вопрос:

У меня есть эта функция SMN(), и я создал внутри нее функцию сайта как Const. Поэтому мне нужно вызвать функцию сайта в функции Render(). Это основной код функции:

 SMN() {
    const Site = () => {
            return (
                <View style={{ height: 400 }}>
                    <WebView source={{ uri: 'https://www.google.com' }} style={{ marginTop: 20 }} />
                </View>
        );
     }
});
 

Это функция Render(), из которой я хочу вызвать функцию сайта, я использовал:
this.SMN().Сайт, это не выдает ошибок, но и не отображает их.

 render() {
    return (
         </View>
            <View>{this.SMN().Site}</View>
        </View>
    )
}
 

Комментарии:

1. Почему у вас есть функция внутри другой функции?

Ответ №1:

Создайте свой сайт как компонент точно так же, как это:

 const Site = () => {
        return (
            <View style={{ height: 400 }}>
                <WebView 
                    source={{ uri: 'https://www.google.com' }} 
                    style={{ marginTop: 20 }} />
            </View>
    );
 }
 

И в вашей функции рендеринга используйте его следующим образом:

 render() {
    return (
         </View>
            <View><Site /></View>
        </View>
    )
}
 

Комментарии:

1. @Chaliem Я получил эту ошибку: ReferenceError: Can't find variable: Site

2. вы забыли импортировать сайт?

Ответ №2:

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

 SMN() {
   
            return (
                {
                 Site : () => (
                                  <View style={{ height: 400 }}>
                                    <WebView source={{ uri: 'https://www.google.com' }} 
                                             style={{marginTop:20 }} />
                                   </View>
                               )
                 }
               );
             
});


 
 render() {
    return (
         </View>
            <View>{this.SMN().Site}</View>
        </View>
    )
}

 

Комментарии:

1.@Changboon Lee, я получил эту ошибку: TypeError: this.SMN is not a function. (In 'this.SMN()', 'this.SMN' is undefined)

2.@HowardJohn, пожалуйста, покажите мне все коды, над которыми работает этот код.