PHPをバックエンドとして使用してReact + Reduxアプリケーションを構築しています。私はそうのような単純なログインフォームを持っている:反応/還元フォームを送信するときにPHPのPOST値を取得できません
import React, {Component} from 'react';
import {reduxForm} from 'redux-form';
import {loginUser} from '../actions/index';
class LoginForm extends Component {
render() {
const {fields: {username, password}, handleSubmit} = this.props;
return (
<form onSubmit={handleSubmit(this.props.loginUser)}>
<input
type="string"
placeholder="username"
{...username}
/>
<input
type="password"
placeholder="password"
{...password}
/>
<input
type="submit"
/>
</form>
);
}
}
export default reduxForm({
form: 'Login',
fields:['username', 'password']
}, null, {loginUser})(LoginForm);
私は、フォームデータの処理を管理するためにredux-form
を使用しています。
export function loginUser(props) {
console.log('props', props);
const request = axios.post(LOGIN_PAGE, props);
return {
type: LOGIN_USER,
payload: request
}
}
console.log
が正しくログインフォームからのすべてのデータが表示されますので、ように私はPHPのバックエンドにデータを投稿する(アクションの作成者を)loginForm
を使用しています。ここで
は私のPHPのバックエンドである:ここで
if (!is_user_logged_in()) {
$username = $_POST['username'];
$username = $username . 'test';
$password = $_GET['password'];
$response = array(
'username' => $username
);
wp_send_json($response);
}
は、関連する減速機である:
export default function(state = INITIAL_STATE, action) {
switch(action.type) {
case LOGIN_USER:
console.log('reducer', action.payload.data);
return {
...state,
statusCode:action.payload.data,
user:action.payload.data
}
}
return state;
}
私はaction.payload.data
にログインすると、私は{ユーザー名: '試験'}を得るため、その私のバックエンドを示し、私のフォームからデータを取得していません。私。 username
をabcと入力すると、テストとは対照的に、abctestに戻るはずです。
どこが間違っていますか?
、私は自分のフォームに ''メソッドは=「POST」を追加し、 '$を変更_GET ['password'] 'を' $ _POST ['password'] 'に書きますが、私はまだ同じ問題を抱えています。 – Frosty619
あなたはvar_dump($ _REQUEST)を投稿できますか?フォーム提出後? @ Frosty619 –
私は、空の配列を返します。これは、 'LOGIN_PAGE'が正しいURLであるため、本当に混乱します。 – Frosty619