• Как при переходе на новую страницу прокручивать её вверх?

    Torin_Asakura
    @Torin_Asakura
    Lead Architect
    npm i --save scroll-into-view
    P.S: render можешь не смотреть, там моя кастомная сетка, но для абстракции к применению может подойти
    class ScrollToTop extends Component {
      onClick = () => {
        if (this.element && this.element.parentNode) {
          scrollIntoView(this.element.parentNode.parentNode, {
            time: 500,
            align: {
              top: 0.1,
            },
          })
        }
      }
    
      onSetRef = (element) => {
        this.element = element
      }
    
      render() {
        const { intl } = this.props
    
        return (
          <div
            ref={this.onSetRef}
            style={{ width: '100%' }}
          >
            <Layer
              align='mc-mc'
              constraints={[{
                to: 'window',
                attachment: 'none',
                pin: ['top'],
              }]}
              classes={{
                pinned: styles(),
              }}
            >
              <div style={{ display: 'none', marginTop: 60, paddingRight: 40, paddingBottom: 20 }}>
                <Text color='blue400'>
                  &#8593;
                </Text>
                <Space />
                <Link onClick={this.onClick}>
                  <Text color='blue400'>
                    {intl.formatMessage(messages.up)}
                  </Text>
                </Link>
              </div>
            </Layer>
          </div>
        )
      }
    }
    Ответ написан
    Комментировать
  • Проверка данных массива. Почему часть else выполняется несколько раз?

    hzzzzl
    @hzzzzl
    let login = document.getElementById('login').value;
    let password = document.getElementById('password').value;
    
    const existingUser = users.find(u => u.login === login)
    
    if (!existingUser) {
      users.push(  { login, password }  )
    }


    отвечая на вопрос, смотри

    for (let i = 0; i <= users.length; i++) {
            // цикл выполнится много раз
            if (login == users[i].login && password == users[i].password) {
                // воу, мы нашли юзера!
                alert('ry-ry')
                debugger
            }else {
                // это не юзер, пишем в массив
                // а цикл ведь выполнится много раз
                users.push(
                    {
                        login: document.getElementById('login').value,
                        password: document.getElementById('password').value
                    }
                )
            }
        }
    Ответ написан
    Комментировать