Ich baue eine Notifer-Komponente für meine Website. Im Grunde eine, die Sie sagen, "hinzufügen" und der Artikel ist "hinzugefügt" auf der Oberseite meiner Website eine grüne Leiste wird kommen und sagen "erfolgreich erstellt"Timeouts in Reactjs?
Jetzt nach einer Sekunde möchte ich es verschwinden. Ich bin mir nicht sicher, was der beste Weg wäre, dies zu tun? Ist es irgendwo ein Javascript-Timer?
import React from 'react';
import 'materialize-css/sass/materialize.scss';
import 'font-awesome/scss/font-awesome.scss';
import 'materialize-css/js/materialize.js';
import classNames from 'classnames/index.js';
export default class Notifer extends React.Component {
render() {
var notifcationClasses = classNames({
'notifcation-success': this.props.notiferReducer.success,
'notifcation-error': this.props.notiferReducer.error,
'hide': !(this.props.notiferReducer.success || this.props.notiferReducer.error)
});
return (
<div id="notifcation" className={notifcationClasses}>
Sucessfully created
</div>
);
}
}
Aktion
import {actions} from './Actions.js';
export function setNotifer(success) {
return function (dispatch) {
dispatch({ type: actions.SET_NOTIFIER, payload: success });
};
}
Reducer
import { actions } from '../actions/Actions';
export default function NotiferReducer(state = {
success: false,
error: false
}, action) {
switch (action.type) {
case actions.SET_NOTIFIER: {
return {
success: action.payload,
error: !action.payload
};
}
}
return state;
}
Normalerweise würde ich so etwas wie Knurren benutzen, aber ich habe nichts gesehen für reactjs (auch ich habe einige, aber keiner von ihnen sehen schien sehr beliebt sein)
setTimeout (function () {alert ("Hallo");}, 3000); Da Sie den besten Weg suchen ... würde ich einen OK-Knopf auf den Dialog legen .... vor allem den Fehlerdialog, um sicherzustellen, dass der Benutzer genug Zeit hat, um es zu lesen und zu verstehen. – Sam
Ich würde in Ihrem Aktionsersteller eine Zeitüberschreitung festlegen, um eine weitere Aktion zum Schließen der Ansicht auszulösen. – riscarrott
@riscarrott können Sie ein Beispiel dafür? Welche Aktion redest du über die Aktion "add" oder "notifier" – chobo2