Javascript 导出redux reducer时,我得到一个;TypeError:无法读取属性';名称';“未定义”的定义;
更新:我没有将切片添加到实际存储中,我现在可以分派操作,但是namePlaceholder常量仍然产生未定义的结果 尝试导出选择器函数时,出现错误: 这是组件代码:Javascript 导出redux reducer时,我得到一个;TypeError:无法读取属性';名称';“未定义”的定义;,javascript,reactjs,redux,jsx,Javascript,Reactjs,Redux,Jsx,更新:我没有将切片添加到实际存储中,我现在可以分派操作,但是namePlaceholder常量仍然产生未定义的结果 尝试导出选择器函数时,出现错误: 这是组件代码: import React,{Component,useState}来自'React'; 从“react-redux”导入{useSelector,useDispatch}; 进口{ 更改名称, 组件测试选择器, }从“./componentTestSlice”开始; 导出函数ComponentTest(){ const name
import React,{Component,useState}来自'React';
从“react-redux”导入{useSelector,useDispatch};
进口{
更改名称,
组件测试选择器,
}从“./componentTestSlice”开始;
导出函数ComponentTest(){
const namepholder=useSelector(componentTestSelector);//应用程序崩溃
const dispatch=usedpatch();
常量[inputName,setInputName]=useState(“”);
返回(
新的
setInputName(e.target.value)}
/>
分派(changeName())}
>改变它
{namepholder}
)
}
导出默认组件测试
结果比您预期的要简单得多。您忽略了在发送操作时发送输入的名称状态值
export function ComponentTest() {
const namePlaceholder = useSelector(componentTestSelector);
const dispatch = useDispatch();
const [inputName, setInputName] = useState("");
return (
<div>
<label>New</label>
<input
aria-label="Set name"
value={inputName}
onChange={(e) => setInputName(e.target.value)}
/>
<button
aria-label="submit new name"
onClick={() => dispatch(changeName(inputName))} // <-- pass name value
>
change it
</button>
<span>{namePlaceholder}</span>
</div>
);
}
导出功能组件测试(){
const namepholder=useSelector(componentTestSelector);
const dispatch=usedpatch();
常量[inputName,setInputName]=useState(“”);
返回(
新的
setInputName(e.target.value)}
/>
调度(changeName(inputName))}//
改变它
{namepholder}
);
}
我仔细研究了这些代码片段和文档,没有发现任何明显的问题(我熟悉react redux,但不熟悉较新的工具包)。错误是
状态.componentTest
未定义。您是否在浏览器中安装了redux开发工具扩展,以便可以验证/验证您的redux状态是否已填充?你能创建一个运行的代码沙盒来复制这个问题,其他人可以现场调试吗?这是我的repo Drew,我会很快尝试在沙盒中复制…我将你的repo克隆到沙盒中:你可以分叉它。你的回购有你刚才在编辑中提到的更新代码吗?按一下就可以了!抱歉2,它工作了谢谢或帮助,但我担心在导出“componentTestSelector”@MarioPerez时仍然返回相同的错误具体是什么错误?我在沙盒中没有看到任何错误。我所做的编辑是导入componentTestSlice
reducer并将其添加到存储中的根reducer,然后将名称传递给动作创建者。