我调用const dataProvider = useDataProvider()我的组件,并且可以使用默认方法,dataProvider.getList("resource",{})没有任何问题。然后,我DataProvider使用自定义get方法扩展了我的方法,用于检索不具有所需Record结构的对象,如下所示:
get: async <T = any>(
resource: string,
params: Partial<QueryParams>
): Promise<{
data: T
}> => {
const url = `${apiUrl}/${resource}?${stringify(params)}`
return httpClient(url)
.then(({ json }) => ({
data: json,
}))
.catch((e) => {
console.log(e)
return Promise.reject(e)
})
},
Run Code Online (Sandbox Code Playgroud)
当我直接导入对象时,我可以毫无问题地使用此方法DataProvider,但是当我想将它与挂钩一起使用时,useDataProvider我会收到以下键入消息:
(...a: unknown[]) => unknown
我必须添加/更改什么,以便我的自定义数据提供程序方法也具有正确的挂钩类型useDataProvider?
我使用的是react-admin3.14 版本,可能很快就会升级到 4.x。
有没有一种简单的方法来模糊文本字段?当与高程结合使用时,容器上常见的模糊效果会产生不必要的副作用。
这根本不起作用:
Stack(
children: [
Container(
child: Text("Text to hide")
),
BackdropFilter(
filter: ImageFilter.blur(
sigmaX: 5,
sigmaY: 5,
),
child: Container(
color: Colors.black.withOpacity(0.8),
),
),
],
),
Run Code Online (Sandbox Code Playgroud)
原始问题
Update在 GORM 中使用该方法时,不会保存新数据。即我想设置一个boolfrom trueto false,但即使在Update方法之后它仍然保持真实。
在该方法的描述中有一个警告:“使用结构更新时警告,GORM 不会更新具有零值的字段”
由于我使用结构来更新并且false是 的零值bool,这似乎是预期的行为,但我看不出有任何理由这样做以及如何克服这一点。
func UpdateData(c *fiber.Ctx) error {
db := database.DBConn
data := new([]entities.Data)
if err := c.BodyParser(&data); err != nil {
return err
}
db.Update(&data)
return c.JSON(data)
}
Run Code Online (Sandbox Code Playgroud)
解决方案总结
首先,正如建议的那样,我new在实例化结构时省略了关键字。然后,我使用了一个辅助函数(来自此处)将结构转换为映射,同时将 json 别名保留为键:
// StructToMap Converts a struct to a map while maintaining the json alias as keys
func StructToMap(obj interface{}) (newMap map[string]interface{}, err error) {
data, err …Run Code Online (Sandbox Code Playgroud) blur ×1
flutter ×1
go ×1
go-fiber ×1
go-gorm ×1
react-admin ×1
reactjs ×1
textfield ×1
typescript ×1