118 votes

Comment obtenir la largeur d'un élément de réaction

J'essaie de créer une entrée de plage qui affiche une info-bulle juste au-dessus du curseur.

Je suis passé en revue quelques exemples JS JS en ligne et il me semble que je dois avoir la largeur de l’élément pour accomplir cela.

Je me demandais donc comment obtenir la largeur des éléments?

Quasiment l'équivalent de la méthode JQuery $(element).width()

134voto

Rick Enciso Points 1119
    class MyComponent extends Component {
      constructor(props){
        super(props)
        this.myInput = React.createRef()
      }

      componentDidMount () {
        console.log(this.myInput.current.offsetWidth)
      }

      render () {
        return (
        // new way - as of React@16.3
        <div ref={this.myInput}>some elem</div>
        // legacy way
        // <div ref={(ref) => this.myInput = ref}>some elem</div>
        )
      }
    }

79voto

Nelu Malancea Points 388

Avec crochets :

 const MyComponent = () => {
  const ref = useRef(null);
  useEffect(() => {
    if (!ref.current || !ref.current.getBoundingClientRect().width) return;
    console.log('do something with', ref.current.getBoundingClientRect().width);
  }, [ref.current]);
  return <div ref={ref}>Hello</div>;
};
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X