Лучше использовать useState или установить как константы в функциональном компоненте (приложение React Native) - PullRequest
0 голосов
/ 20 июня 2020

У меня есть постоянный userIndex в моем приложении React Native, которое использует функциональные компоненты.

Я инициализирую userIndex, используя следующее:

const [userIndex, setUserIndex] = useState(0); 

У меня также есть константа с именем renderedUserIndex. Мне кажется, что есть два способа установить эту константу:

OPTION A:
const renderedUserIndex = userIndex % 2 === 0 ? userIndex : userIndex + 1; 

Второй:

OPTION B:
const [renderedUserIndex, setRenderedUserIndex] = useState(0);

useState(() => {
   setRenderedUserIndex(userIndex % 2 === 0 ? userIndex : userIndex + 1); 
}, [userIndex]); 

Какой метод предпочтительнее?

Ответы [ 2 ]

2 голосов
/ 20 июня 2020

Полагаю, вы имели в виду useEffect в последнем фрагменте и ответили на такой вопрос.

Вариант A определенно является способом go. Если вы используете renderedUserIndex в одном и том же функциональном компоненте, тогда действительно нет причин сохранять его в собственном состоянии.

Можно использовать вариант B, если вам нужно, чтобы два индекса в какой-то момент расходились, но в противном случае он не понадобится.

1 голос
/ 20 июня 2020

Лучшая оценка будет следующей

const renderUserIndex = useMemo(() => userIndex % 2 === 0 ? userIndex : userIndex + 1 , [userIndex])

Поскольку теперь renderUserIndex будет вычисляться только тогда, когда userIndex изменится, означает s Он не будет вычисляться без необходимости при каждой визуализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...