我无法在redux actions.js中获取getState。以下代码不发布,只在控制台打印'我出去了!'并且没有错误:
Test.jsx:
...
import { testPost } from './actions';
...
onSubmit (e) {
e.preventDefault();
testPost({
todo: 'test'
});
}
actions.jsx:
export function testPost (todo) {
console.log('i am out!');
return function (dispatch, getState) {
console.log('i am in!');
let id = getState().test.id;
return fetch(`url`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: id,
todo: todo
})
});
}
}
请注意,如果我注释掉以下行和硬编码ID,则会很好地发布:
return function (dispatch, getState) {
另外,请告诉我是否正确期待'我在!'在上面的示例代码中打印。
答案 0 :(得分:0)
您可以将您需要的ID传递给您的操作创建者( testPost ),这样您的操作就不需要了解状态。
例如:
export function testPost(todo) {
console.log('i am out!');
return function(dispatch, id) {
return fetch(`url`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: id,
todo: todo
})
});
}
}
修改强>
我会看一下我在评论中提到的两个(免费)在线课程,其中第二个课程有一个关于检索数据的部分,但我首先要了解redux(动作,减速器及其管道)在获取数据之前使用更简单的用例。