как использовать глобальную переменную в компоненте класса в проекте React-native - PullRequest
0 голосов
/ 07 мая 2020

Я использую глобальную переменную, которая объявлена ​​в app.tsx как functional component как

const App = () => {
useEffect(r => global.some = 'anything')
}

Я использую эту глобальную переменную в других functional component очень похожих

const SomeComponent = () => {
useEffect(r => console.log(some)) //annything
}

но когда я использую это в class component, я получаю сообщение об ошибке под названием unexpected token

как

class NewClass extends React.Component {
useEffect(r => console.log(some) //error : unexpected token 
}

есть ли у кого-то ответ, что идет не так, что мне делать, чтобы записать данные

1 Ответ

0 голосов
/ 07 мая 2020

useEffect относится к перехватчикам, а hooks only works with a functional component, not with class component.

Согласно документации.

Хуки - это новое дополнение в React 16.8. Они позволяют использовать состояние и другие функции React без написания класса

Ссылка на документы

Изменить: хуки в основном заменяют методы жизненного цикла в функциональном компоненте , До 16.8 мы не могли использовать методы жизненного цикла внутри функциональных компонентов компонентов, что сделало это возможным для нас в версии 16.8 response.

Теперь вернемся к вашему вопросу, если вы что-то делаете в функциональном компоненте и хотел сделать компонент класса для того же logi c, вы должны использовать методы жизненного цикла, которые до сих пор не доступны в компоненте класса.

Нет ничего, что вы можете сделать с помощью крючков и не может работать с классами и наоборот.

Как ваш комментарий, вы достигли того же самого с componentWillUpdate, но этот метод устарел с v17 of react, поэтому, если вы хотите что-то сделать при обновлении компонентов рекомендуется использовать componentDidUpdate. вот список того, как хуки представляют методы жизненного цикла.

https://medium.com/javascript-in-plain-english/lifecycle-methods-substitute-with-react-hooks-b173073052a

...