2

这是它的 GIF:http: //www.giphy.com/gifs/3oKIP7arhKhNzNzytq

如您所见,每当我单击它时,它都不会选择。

这是我在 webpack 中工作的确切代码: https ://www.webpackbin.com/bins/-KoaaPYxDno695fiUBMn

但在我的初学者工具包环境中,它似乎不起作用。但是,复选框似乎有效。有任何想法吗?

"react": "^15.5.4",
"react-dom": "^15.5.4",
"material-ui": "^0.18.6",

编辑:我也有 react-tap-event-plugin 并且我在我的 client.js 文件的顶部调用了它。还尝试在我的 Location.js 文件顶部。

import injectTapEventPlugin from 'react-tap-event-plugin';
injectTapEventPlugin();

这是我的完整依赖列表:

dependencies": {
    "apisauce": "^0.14.0",
    "babel-polyfill": "^6.23.0",
    "bluebird": "^3.5.0",
    "body-parser": "^1.17.2",
    "classnames": "^2.2.5",
    "cookie-parser": "^1.4.3",
    "core-js": "^2.4.1",
    "express": "^4.15.3",
    "express-graphql": "^0.6.6",
    "express-jwt": "^5.3.0",
    "graphql": "^0.10.3",
    "history": "^4.6.3",
    "isomorphic-style-loader": "^2.0.0",
    "jsonwebtoken": "^7.4.1",
    "material-ui": "^0.18.6",
    "node-fetch": "^1.7.1",
    "normalize.css": "^7.0.0",
    "passport": "^0.3.2",
    "passport-facebook": "^2.1.1",
    "pretty-error": "^2.1.1",
    "prop-types": "^15.5.10",
    "query-string": "^4.3.4",
    "react": "^15.5.4",
    "react-dom": "^15.5.4",
    "react-tap-event-plugin": "^2.0.1",
    "sequelize": "^4.2.1",
    "serialize-javascript": "^1.3.0",
    "source-map-support": "^0.4.15",
    "sqlite3": "^3.1.8",
    "universal-router": "^3.2.0",
    "whatwg-fetch": "^2.0.3"
  },
4

2 回答 2

1

你很可能错过了react-tap-event-plugin. 添加它npm install -save react-tap-event-plugin

于 2017-07-09T10:48:55.653 回答
0

我在这个问题上苦苦挣扎了几天,并找到了解决方案。看看它是否适合你

为什么它不起作用?

如果您仔细查看 RadioButton 的后端代码,您会发现它实际上类似于 Checkbox。我意识到问题不仅在于 RadioButtons,而且复选框也不起作用(而切换工作正常)。

我拿了我的源代码并使用 CRA(创建 React 应用程序)运行它,并且 RadioButtons 运行良好。对于 RSK(React Starter Kit),第一个不同的嫌疑人是 BrowserSync。我挖得更深一点,发现 BrowserSync 中有一个用于 Ghost clicks 的配置,该配置将被关闭。你可以在这里读更多关于它的内容

https://github.com/callemall/material-ui/issues/2983

要在启动脚本中关闭 Ghost 模式,请转到RSK 项目文件夹中的/tools/start.js并将配置更改为

browserSync.create().init(
  {
    // https://www.browsersync.io/docs/options
    server: 'src/server.js',
    ghostMode: false,
    middleware: [server],
    open: !process.argv.includes('--silent'),
    ...(isDebug ? {} : { notify: false, ui: false }),
  },
  (error, bs) => (error ? reject(error) : resolve(bs)),
),
于 2017-08-17T18:43:14.983 回答