我正在使用reactjs。 我想在带有react-alert组件的组件中显示警报。 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>
)
}
答案 0 :(得分:1)
您正在使用:
render(){
return(
<div> alert.show("Alert test") </div>
)
}
但是您需要使用一个事件来显示该警报。
改为使用此:
render(){
return(
<div
onClick={() =>
{alert.show('Alert test')}
}
/>
)
}
答案 1 :(得分:0)
除非用大括号括起来,否则您不能在render方法内调用函数/方法。 jsx中需要大括号,以使解析器知道您要运行一些javascript代码。
尝试以下操作:
render() {
return (
<div>{alert.show("Alert test")}</div>
);
}
使用onClick处理程序时,npm上的react-alert包也有一个很好的示例 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