• Как загрузить данные до отрисовки в React?

    @lnked
    `componentDidMount ` срабатывает после `render`, вы можете показать прелоадер пока данные грузятся, после загрузки покажете данные

    class example extends React.Component {
      state = {
        data: [],
        isLoading: true,
      }
    
      componentDidMount() {
        fetch('example/url')
          .then(response => response.json())
          .then(data => this.setState({ data }))
      }
    
      render() {
        const { isLoading } = this.state
    
        if (isLoading) {
          return <div>Загрузка</div>
        }
    
        return data.map(item => <div key={item.id}>{item.name}</div>)
      }
    }
    Ответ написан
    Комментировать
  • Как сохранить сессию пользователя React?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Что тут можно порекомендовать.
    При авторизации сохраняйте токен в cookie и хранилище приложения.
    Если используете axios, то можно сохранить токен в заголовки по-умолчанию.
    Пример с использованием redux, js-cookie и axios:
    cookie.set('token', token);
    dispatch(setToken(token)); // если не используете Redux, тут будет this.setState
    axios.defaults.headers.common.Authorization = `Bearer ${token}`;


    При инициализации проверяйте наличие токена:
    const token = cookie.get('token');
    
    if (token) {
      dispatch(setToken(token));
      axios.defaults.headers.common.Authorization = `Bearer ${token}`;
      // other actions
    }


    При логауте удаляйте токен:
    dispatch(deleteToken());
    cookie.erase('token');
    delete axios.defaults.headers.common.Authorization;
    Ответ написан
    Комментировать