Tepki satır içi kılavuzunu kullanıyorum ve bileşenleri <Grid>
ile sardığım anda, sarılı bileşenlerin mağazaya erişimini kaybedecek gibi görünüyor :Bileşenler(tepkisel satır içi) sarıldığında depolamaya erişim kaybediyor
Uncaught TypeError: Cannot read property 'currentStep' of undefined
kodu:
class App extends Component {
componentDidMount() {
const { dispatch } = this.props;
dispatch(loadData());
}
render() {
return (
<div>
<Grid>
<Row>
<Cell>
<Stepper />
</Cell>
</Row>
</Grid>
</div>
);
}
}
const mapStateToProps = state => ({
app: state.app
});
export default connect(mapStateToProps)(App);
ben o tepki bileşenlerin bir dizi geçtiğinde bir hata attı çünkü ekstra div olduğunu.
Bunu farklı bileşenlerle denedim ve her seferinde benzer bir hata alıyorum. Ayrıca, ızgara tek bir bileşenin içinde olduğumda çalışır.
import { connect } from 'react-redux';
import AppStepper from '../components/Stepper/AppStepper';
import { selectStep, postNotification } from '../actions';
function handleChange(value, dispatch) {
dispatch(selectStep(value));
if (value === 2 || value === 3) {
dispatch(postNotification('Coming soon!'));
}
}
const mapStateToProps = (state, ownProps) => ({
currentStep: state.app.currentStep
});
const mapDispatchToProps = (dispatch, ownProps) => ({
handleChange: (value) => {
handleChange(value, dispatch);
}
});
const Stepper = connect(
mapStateToProps,
mapDispatchToProps
)(AppStepper);
export default Stepper;
Ve bileşeni:
const MaterialApp =() => (
<MuiThemeProvider>
<App />
</MuiThemeProvider>
);
injectTapEventPlugin();
ReactDOM.render(
<Provider store={store}>
<MaterialApp />
</Provider>,
document.getElementById('root')
);
İşte Step benim konteyner referans için verilmiştir:
import React, { Component } from 'react';
import {
Step,
Stepper,
StepButton,
} from 'material-ui/Stepper';
import PropTypes from 'prop-types';
class AppStepper extends Component {
constructor(props) {
super();
}
render() {
const currentStep = this.props.currentStep;
const onChange = this.props.handleChange;
return (
<div style={{width: '100%', maxWidth: 700}}>
<Stepper linear={false} activeStep={currentStep}>
<Step>
<StepButton onClick={() => onChange(0)}>
Import Data
</StepButton>
</Step>
<Step>
<StepButton onClick={() => onChange(1)}>
Select Layout
</StepButton>
</Step>
<Step>
<StepButton onClick={() => onChange(2)}>
Finalize Layout
</StepButton>
</Step>
<Step>
<StepButton onClick={() => onChange(3)}>
Export
</StepButton>
</Step>
</Stepper>
</div>
);
}
}
export default AppStepper;
'currentStep' kodunuzda nerede? – jmancherje
@jmancherje Bu benim devletimin bir parçası. Connect() ve mapStateToProps kullanıyorum. Gönderiyi daha fazla kodla güncelledim. Teşekkürler! – sutee