在 LoginForm 中,this.props盡管我在 mapDispatchToProps 中傳遞了操作,但仍未定義。我在函數中設置了斷點connect,并且該操作正在將其放入 connect 函數中,但無論出于何種原因,在該handleSubmit函數中,this.props 是未定義的。我很難過。我有一個單獨的“注冊”流程,它與我下面的基本相同,并且運行良好。我基本上復制粘貼了注冊代碼,并將所有內容重命名為“登錄”,并稍微修改了一些內容,無論出于何種原因this.props 未定義,即使我傳遞給 mapDispatchToProps 的內容似乎是正確的。組件:import React from 'react';import { connect } from 'react-redux';import { loginSubmit, loginUpdateField } from '../../redux/actions/login.actions';import { TextInput } from '../../stories/TextInput';import { Button } from '../../stories/Button';export class LoginForm extends React.Component { // eslint-disable-next-line constructor(props) { super(props); } handleSubmit(event) { event.preventDefault(); console.log('Props: ', this.props); // UNDEFINED!!!!!! } handleUpdateField(field, value) { // this.props.updateField(field, value); } render() { return ( <form style={{ 'WebkitPerspective': '1000' }}> <TextInput label="Username" id="username" /> <br /> <TextInput label="Password" id="password" type="password" /> <br /><br /> <Button disabled={false} primary size="medium" onClick={this.handleSubmit.bind(this)} label="Ready for Takeoff" /> <Button disabled={false} size="medium" onClick={() => alert} label="Cancel" /> </form> ); }}export default connect( null, { loginSubmit, loginUpdateField })(LoginForm);那個行動:export const loginSubmit = (fieldValues) => { return dispatch => { dispatch(loginSubmitBegin); let errors = isFormValid(fieldValues); if (!errors.formValid) { dispatch(loginErrors(errors)); } else { axios .post(`https://api.mydomain.io/login`, fieldValues, { headers: { "Access-Control-Allow-Origin": "*", } }) .then(res => { dispatch(loginSuccess({ username: 'testuser' })); }) .catch(err => { handleErr(err.response.data.error); }); } }};
當我將動作傳遞給 mapDispatchToProps 時,為什么 this.props 未定義?
至尊寶的傳說
2023-02-17 15:58:16