关于反应下拉菜单,我有一个小问题.
我可以在下拉列表中提取值,但我也需要密钥,因为我的页面用于销售内容.所以,它是一个关联表,我需要每个表中的id来进行我的查询INNERJOIN.
这是我填写它的方式:
let options_customers = [];
serviceList[0].map((service, i) =>
options_customers.push({
key: service.Id,
text: service.Name,
value: service.Name
}))
Run Code Online (Sandbox Code Playgroud)
我的下拉菜单:
<Dropdown
selection options={options_customers}
onChange={this.handleChange}
value={value} key={options_customers.key}
name="selectCustomer" placeholder='Select Customer'
/>
Run Code Online (Sandbox Code Playgroud) model-view-controller jsx reactjs es6-modules semantic-ui-react
因此,我想Text根据我的CoreData模型的内容来更改其内容。为此,我在Xcode beta 4中使用了一个计算属性,但是它似乎不再起作用。这是一个错误,还是我看不到其他问题?
我确切的问题是,self.objectWillChange.send()在我的商店中调用时,我的视图(和计算的属性)似乎没有更新。
我还试图将我的var“导出”到商店中,然后从那里得到它,结果相同。
编辑:
我只是对另一个类尝试了相同的方法,objectWillChange.send()但它仅与@Published但不一起工作,但是如果从NSObject继承的类则停止工作...
我才发现:
struct Today: View {
@EnvironmentObject var myStore: DateStore
var hasPlans: Bool {
guard let plans = myStore.getPlans() else { return false }
return plans.isEmpty
}
var body: some View{
VStack{
Text(hasPlans ? "I have plans":"I have time today")
Button(action: {
self.myStore.addPlans(for: Date())
}) {
Text("I have plans")
}
}
}
class DateStore: NSObject, ObservableObject, NSFetchedResultsControllerDelegate {
private var fetchedResultsController: NSFetchedResultsController<DateStore>
//...
public func addPlans(for …Run Code Online (Sandbox Code Playgroud) 我正在使用 ARKit 和 GameKitMatches,所以我不能使用 Codable (afaik),因为MCPeerID它也是ARWorldMap不可编码的,首先要解决这个问题。
所以我使用 NSCoding 和 NSSecureCoding 但由于某种原因我总是发现错误:
The data couldn’t be read because it isn’t in the correct format.
...即使我真的只是创建了它。我也尝试使用,NSKeyedUnarchiver.unarchivedObject(ofClasses: classes但这在我的初始化中抛出了一个意外的零。
这是我制作的一个显示问题的游乐场:
class CodingData: NSObject, NSCoding, NSSecureCoding {
static var supportsSecureCoding = true
var dic: [String: Int]!
var i: Int!
func encode(with coder: NSCoder) {
coder.encode(i, forKey: "i")
coder.encode(dic, forKey: "dic")
}
required convenience init?(coder: NSCoder) {
let anInt = coder.decodeObject(forKey: "i") as! Int
let anDic = coder.decodeObject(forKey: "dic") as! …Run Code Online (Sandbox Code Playgroud)