我在尝试让 Xcode 使用 Core Data 时遇到此错误。任何帮助将不胜感激。
const Parent = () => {
const [state, setState] = React.useState(false);
const toggleState = () => setState(prevState => !prevState)
return (
<div>
<p>Parent State: {String(state)}</p>
<Child toggleState={toggleState}/>
</div>
);
};
const Child = ({toggleState}) => {
return <button onClick={toggleState}>Child Button</button>;
};
ReactDOM.render(<Parent />, document.getElementById("root"));
把其他环境都注释掉,让持久化环境只用在顶层,还是出现同样的错误。
这是应用顶级 Swift 文件:
导入 SwiftUI 导入核心数据
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="root"></div>
}
这是使用持久控制器的文件(Core Data xcdatamodeld 有一个名为 img 的二进制数据属性)
持久性.Swift
Context in environment is not connected to a persistent store coordinator: <NSManagedObjectContext: 0x6000008a8820>
PS:这个项目我不是用 Core Data 开始的,我是后来加的
答案 0 :(得分:1)
您的 @FetchRequest
在初始化时没有 NSManagedObjectContext
。您正在使用此行创建它
let persistenceController = PersistenceController.shared
您的 @FetchRequest
必须向下移动到 ContentView
才能工作。
必须调用这一行
.environment(\.managedObjectContext, persistenceController.container.viewContext)
初始化包含 View
的 @FetchRequest
时