Использование Material-ui с Electron

#javascript #node.js #reactjs #electron #material-ui

#javascript #node.js #reactjs #электронный #material-ui

Вопрос:

Я создаю приложение electron с React и пытаюсь использовать Material-UI для элементов пользовательского интерфейса. Я добавил в компонент указатель даты и времени, и ввод отображается в приложении electron, однако, когда вы нажимаете на него, ничего не происходит. Не уверен, чего мне не хватает, чтобы заставить это работать правильно

Компонент :

 import React, { Component } from 'react';
import DatePicker from 'material-ui/DatePicker';
import TimePicker from 'material-ui/TimePicker';

export default class Schedule extends Component {
  render() {
    return (
      <div>
        Pick a date :
        <DatePicker id="date"/>
        and time :
        <TimePicker id="time"/>
      </div>
    )
  }
}
  

index.js :

 import 'babel-polyfill'; // generators
import React from 'react';
import { render as renderReact } from 'react-dom';
import debounce from 'debounce';
import configureStore from './store/configureStore';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import injectTapEventPlugin from 'react-tap-event-plugin';

injectTapEventPlugin();

const state = JSON.parse(localStorage.getItem('state'));
const store = configureStore(state || {});

let App = require('./components/app').default;
const render = (Component) => {
  renderReact(<MuiThemeProvider><Component {...store} /></MuiThemeProvider>, document.getElementById('root'));
};

if (module.hot) {
  module.hot.accept('./components/app', function() {
    let newApp = require('./components/app').default;
    render(newApp);
  });
}

const saveState = debounce(() => {
  localStorage.setItem('state', JSON.stringify(store.getState()));
}, 1000);
store.subscribe(() => {
  saveState();
  render(App);
  if (process.env.ENV === 'development') {
    console.log('state', store.getState());
  }
});
store.dispatch({ type: 'APP_INIT', store });
  

Ответ №1:

В вашем app.js , вам необходимо импортировать и запустить следующий плагин:

 const injectTapEventPlugin = require('react-tap-event-plugin');
injectTapEventPlugin();
  

Комментарии:

1. или переключение на текущую версию V1 устраняет эту проблему.