showNotification в реакции-админ не работает - PullRequest
0 голосов
/ 06 января 2019

1. Звонок с помощью обратных вызовов жизненного цикла. У меня есть код, как показано ниже:

// app.js
<Admin>
   <Resource name="FooList" list={FooList} />
</Admin>

// FooList.js
class FooList extends React.Component {
     componentDidMount () {
         showNotification("foo")
     }
}

export default connect(null, {showNotification})(FooList)

Когда компонент монтируется, в консоли появляется ошибка:

 Warning: React does not recognize the `showNotification` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `shownotification` instead. If you accidentally passed it from a parent component, remove it from the DOM element.

2. Вызовите какое-нибудь событие (например, нажмите). В другом случае у меня есть какой-то обработчик, и я вызову showNotification.

class Foo extends React.component {
   handleClick = () => {
      showNotification('Hello, World')
   }
}

export default connect(null, { showNotification })(Foo)

В этом случае вызывается handleClick, но уведомление не появляется, но в консоли НЕТ ошибок

Ниже приведены мои зависимости от проекта

"dependencies": {
  "@material-ui/core": "1.5.1",
  "@material-ui/icons": "3.0.1",
  "apollo-boost": "^0.1.22",
  "apollo-link-schema": "^1.1.2",
  "graphql": "^14.0.2",
  "graphql-tag": "^2.10.0",
  "graphql-tag.macro": "^2.0.0",
  "graphql-tools": "^4.0.3",
  "graphql.macro": "^1.0.2",
  "material-ui": "^0.20.2",
  "ra-core": "^2.4.3",
  "ra-data-graphql": "^2.4.3",
  "react": "^16.3.2",
  "react-admin": "^2.4.3",
  "react-dom": "^16.3.3",
  "react-material-ui-form-validator": "^2.0.2",
  "react-scripts": "^2.1.1",
  "redux": "^4.0.1",
  "redux-thunk": "^2.3.0",
  "seamless-immutable": "^7.1.4"
}

Как показать уведомление в приложении реакции-администратора? Что я пропустил?

1 Ответ

0 голосов
/ 07 января 2019

Диспетчеры действий передаются как свойства компонента, таким образом, имя mapDispatchToProps. Поэтому для вызова диспетчера действий вы должны использовать this.props.showNotification('Hello, World')

...