我想同時顯示和聚焦輸入字段。我正在尋找建議,以最優雅的方式來做到這一點。ReactJS:取消隱藏+聚焦輸入字段
簡單的方法不起作用: *包含輸入字段的元素會通過設置display =''來取消隱藏輸入框的狀態更改。我有這部分工作。 *包含輸入字段的元素通過ref獲取子元素,並在其DOM元素上調用.focus()。這是不起作用的部分。
我認爲這是因爲樣式更改(display ='')沒有傳播到真正的DOM,所以focus()不起作用。
我可以想辦法解決這個問題(輸入字段可能有一個狀態變量isFocusing,它只在渲染髮生後才調用focus()),但我會聽到是否有更優雅的方法來實現這一點。
謝謝!
感謝您的想法!我認爲目前的impl有一個小問題,因爲每次更新都會關注組件 - 有點煩人。 我只注意到componentDidUpdate爲你提供了以前的道具/狀態,這使得人們只能在this.state.show過渡時聚焦()。 – Chris
是的,需要更多的邏輯取決於用例,但使用裁判是訣竅!你也可以使用jquery和ref,例如:$(React.findDOMNode(this.refs.myRef))。show(); –