Javascript 不要向孩子传递道具
我是一个新的反应,并试图建立一个基本的CRUD应用程序作为一个例子 就我的Javascript 不要向孩子传递道具,javascript,reactjs,components,react-router-dom,Javascript,Reactjs,Components,React Router Dom,我是一个新的反应,并试图建立一个基本的CRUD应用程序作为一个例子 就我的 <EditProduct products = {this.state.products} handleSubmit = {this.handleProductUpdate} /> 组件标记,一个空的products[]数组正在传递给props。我知道state.products是填充的,因为它传递给组件,我可以在控制台中看到它。我认为这可能是一个异步问题,但即使在使用模拟数据时也
<EditProduct
products = {this.state.products}
handleSubmit = {this.handleProductUpdate} />
组件标记,一个空的products[]数组正在传递给props。我知道state.products是填充的,因为它传递给组件,我可以在控制台中看到它。我认为这可能是一个异步问题,但即使在使用模拟数据时也会出现这种情况
我的第二个问题是,当http://localhost:3000/update/5e3615179d7a8e01d85147e1 调用,以便我可以从状态中筛选出正确的产品。产品[],并仅将选定的产品传递给。react router dom的useParams函数没有为我返回任何结果。
我知道我只需要通过一个产品,但从路由中提取/:id的值时也遇到问题
我找到了CRUD教程,但没有像这样使用路由器。我不明白为什么这会导致这个问题。这件事我已经做了好几天了。任何帮助都将不胜感激
谢谢,
Rob当您使用document.location.replace时,它基本上是一个页面重新加载,将卸载您的应用程序组件并再次重新装载。您可以将控制台放入componentDidMount in App component中进行检查,这意味着EditProduct将再次接收您的初始状态,即空数组,然后再使用更新的数据呈现。然而,在构造函数中,您将只接收初始状态
我的建议是使用react router dom提供的链接组件来避免页面重新加载
至于useParams,它是react router dom的API,支持API,只在功能组件中工作,而不在类组件中工作。要查看问题,请单击任何产品上的更新并打开控制台。