web-dev-qa-db-ja.com

react-alertを使用してコンポーネントにメッセージを表示するにはどうすればよいですか?

私はreactjsを使用しています。リアクションアラートコンポーネントを含むコンポーネントにアラートを表示したいのですが。 https://www.npmjs.com/package/react-alert 指定されたとおりにindex.jsファイルをラップします。

しかし、フォームでalert.show ("sdfsdfsdfsf")を使用しようとすると、次のエラーが発生します。

フォームでメッセージを表示する方法

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App/App';

import { transitions, positions, Provider as AlertProvider } from 'react-alert'
import AlertTemplate from 'react-alert-template-basic'

import { Provider } from 'react-redux';

const options = {
    // you can also just use 'bottom center'
    position: positions.BOTTOM_CENTER,
    timeout: 5000,
    offset: '30px',
    // you can also just use 'scale'
    transition: transitions.SCALE
};
ReactDOM.render(
    <Provider store={store}>
        <AlertProvider template={AlertTemplate} {...options}>
            <App/>
        </AlertProvider>
    </Provider>,
document.getElementById('root'));

myForm.js

import { useAlert } from "react-alert";
const alert = useAlert();
class myForm extends Component {
  constructor(props) {
    super(props);
.........

render() {
return(
<div> alert.show("Alert test") </div>
)
}
3
Fatih mzm

中括弧で囲まれていない限り、renderメソッド内の関数/メソッドを呼び出すことはできません。パーサーにjavascriptコードを実行することを通知するには、jsxで中括弧が必要です。

以下を試してください:

render() {
   return (
     <div>{alert.show("Alert test")}</div>
   );
}

Npmのreact-alertパッケージには、onClickハンドラーを使用した場合の良い例もあります https://www.npmjs.com/package/react-alert

const App = () => {
  const alert = useAlert()

  return (
    <button
      onClick={() => {
        alert.show('Oh look, an alert!')
      }}
    >
      Show Alert
    </button>
  )
}

export default App
0
sbodi