如何使用React ref获取元素的宽度?

时间:2019-08-02 07:59:22

标签: javascript reactjs material-ui

我有一个选择字段,但是我无法使用React Ref来获得此选择的宽度。

enter image description here

this.selectRef.current是一个对象,但似乎无法获取元素的宽度

     <Select
        fullWidth
        ref={this.selectRef}
        onChange={event => {
          this.setState({
            value: event.target.value
          });
        }}
        value={this.state.value}
      >
        <MenuItem value={0}>Zero</MenuItem>
        <MenuItem value={1}>One</MenuItem>
        <MenuItem value={2}>Two</MenuItem>
        <MenuItem value={3}>Three</MenuItem>
        <MenuItem value={4}>Four</MenuItem>
      </Select>

沙盒示例https://codesandbox.io/embed/hungry-galileo-eydfw

1 个答案:

答案 0 :(得分:0)

只需将<?php header('Cache-Control: no cache'); session_cache_limiter('private_no_expire');; echo form_open('search', array('method'=>'get')); ?> <input type="text" name="keyword" placeholder="search"> <input type="submit" name="search_submit" value="Cari"> <?php echo form_close() ?> <table> <h2>Search Result <?php echo $keyword['keyword']; ?>, **(9999)** Results <br> </h2 > <?php foreach($search_data as $men); { ?> <tr> <?php echo form_open('dashboard/beli');?> <td><?php echo ($men->name); ?></td> <?php echo form_close(); ?> </tr> <?php } ?> </table> 组件包装在Select中,然后将div赋予div

此外,尝试使用ref来记录宽度,并在渲染外部定义ref-width读取逻辑。相反,将其放在state中,这样我们就可以确保该元素已呈现到屏幕上,并且无需检查componentDidMount()是否真实。

还可以使用ref.current代替.clientWidth,以便获得实际的元素宽度,不包括边框。

See working sandbox

.offsetWidth