Пользовательский интерфейс не обновлялся с помощью React-redux на Mac OS - PullRequest
0 голосов
/ 11 марта 2019

Проблема проявляется в Mac OS, и она хорошо работает в Windows.

Это демонстрационная версия.Когда кнопка нажата, число count не увеличилось, все равно 0. Но при просмотре состояния в инструменте реагирования dev, значение значения состояния действительно увеличивалось при нажатии кнопки.А редуктор - это чистая функция, при изменении состояния он просто генерирует новый объект.

Ниже приведен код :

import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import { createStore } from 'redux'
import { Provider, connect } from 'react-redux'

// React component
class Counter extends Component {
  render() {
    const { value, onIncreaseClick } = this.props
    return (
      <div>
        <span>{value}</span>
        <button onClick={onIncreaseClick}>Increase</button>
      </div>
    )
  }
}

// Action
const increaseAction = { type: 'increase' }

// Reducer
function counter(state = { count: 0 }, action) {
  const count = state.count
  switch (action.type) {
    case 'increase':
      return { count: count + 1 }
    default:
      return state
  }
}

// Store
const store = createStore(counter)

// Map Redux state to component props
function mapStateToProps(state) {
  return {
    value: state.count
  }
}

// Map Redux actions to component props
function mapDispatchToProps(dispatch) {
  return {
    onIncreaseClick: () => dispatch(increaseAction)
  }
}

// Connected Component
const App = connect(
  mapStateToProps,
  mapDispatchToProps
)(Counter)

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
)

Я думаю, что это просто вкод.Но я не могу сказать, почему.Проблема возникает только в Mac OS, как в Chrome, так и в Safari.

Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 11 марта 2019

этот код работает отлично.Я думаю, что должны быть некоторые проблемы с JavaScript, которые мешают работе кода, потому что это могут быть другие файлы вашего проекта.Пожалуйста, проверьте их, или вы можете поделиться своим кодом проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...