javascript - Materialise 'Select' 组件在 React 中无法工作

标签 javascript jquery reactjs materialize

正如问题中所述,我尝试在 MaterializeCSS/React 中使用 Select 组件,网页渲染如下所示:failing materialize select

文本显示为灰色,我无法单击它或与之交互。这是我的相关代码:

我已经包括:

import ReactDOM from 'react-dom';
import $ from 'jquery'; 

我的 componentDidMount() 方法如下所示:

componentDidMount() {
  var element = ReactDOM.findDOMNode(this.refs.dropdown)
  $(element).ready(function() {
    $('select').material_select();
  });
}

在我的 render() 函数中,我有 Materialize Website 中的示例代码:

<div class="input-field offset-s3 col s1">
  <select>
    <option value="" disabled selected>Choose your option</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
  </select>
  <label>Materialize Select</label>
</div>

我在这里做错了什么?我遵循了这里给出的建议,但它似乎不起作用:

How do I get the Materialize select dropdown to work with React?

我四处搜寻,但似乎找不到其他人描述相同行为的帖子。

最佳答案

您不应该将 jQuery 与 React 一起使用。 React 使用虚拟 DOM 来制作 UI,而 jQuery 使用普通的浏览器 DOM。这意味着,如果您开始使用 jQuery 来处理状态,React 将不再处理状态、事件和 UI 渲染。 (https://hashnode.com/post/why-is-it-a-bad-idea-to-mix-jquery-and-react-cit77t20z02j5fq536wlyiwtk)。 MaterializeCSS 使用 jQuery 与其许多(如果不是全部)组件进行交互。

此外,在渲染函数中,React 对所有 DOM 属性和属性(包括事件处理程序)使用驼峰命名法。您需要使用 className 而不是 class 才能正确使用 css 类。

关于javascript - Materialise 'Select' 组件在 React 中无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010978/

相关文章:

javascript - 使用手机时如何隐藏一个 svg 并显示另一个?

javascript - 用于检查集合的第一个字符和最后一个字符是否不同的正则表达式

javascript - jQuery Uploadify 中的动态 scriptData

javascript - 为什么他们使用引用而不是 jQuery 对象?

jQuery 验证、ASP.NET MVC ModelState 错误(异步 POST)

javascript - 如何强制调用 React.js Hook 的顺序

javascript - 如何对我的 JSON 数组进行排序?

javascript - Bootstrap DatePicker 格式 mm/yyyy 设置最大月份

reactjs - 类型 'state' 上不存在属性 'FetchPeriod'

javascript - react 。为什么 this.state 没有正确更新?