Как вызвать функцию перед рендером, в хуке реагируют нативные? - PullRequest
0 голосов
/ 28 октября 2019

Использовать эффект только после рендера. Какой метод будет вызываться только один раз и запускаться до первоначального рендеринга в хуке функции? Я не могу использовать componentWillMount, потому что он должен быть внутри компонента класса, а ловушка должна быть внутри функции.

1 Ответ

1 голос
/ 28 октября 2019

Фактически хуки сами по себе являются функциями (они позволяют вам использовать состояние и другие функции React) без написания класса. И соответственно у них нет никаких методов жизни компонента. Как componentWillMount () и т. Д.

Таким образом, одним из решений является использование хуков в качестве отдельного компонента в вашем классе. И тогда в вашем классе js у вас есть доступ квсе методы жизненного цикла. Существует метод shouldComponentUpdate (state, props). Он принимает реквизиты и состояния, и вы можете сравнить, хотите ли вы перерисовать экран или нет. Он будет вызван прямо перед визуализацией. Если возвращено «true», экран будет визуализироваться снова. иначе нет.

shouldComponentUpdate(nextProps, nextState) {
if (nextProps === this.props && nextState === this.state)
  return false
else
  return true

}

Ниже приведен пример использования хуков в методе рендеринга класса

 import React, { useState } from 'react';
 const ExampleHook = props => {
   return (
      <View>
        <Text>Hello i am from hook</Text>
      </View>
    );
 }
 export default ExampleHook

Теперь вам нужно импортировать этот хук в вашдругой файл JS. и вы можете использовать это в методе рендеринга этого класса. Вы должны решить, основываясь на решении из функции shouldComponentUpdate ().

...