我希望能够通过将字符串变量传递给函数来实例化特定的ES6类.根据变量的值,将创建一个不同的类.
示例 - 我有2个类ClassOne,ClassTwo.我希望能够将变量传递给函数并返回一个新类.类的名称将与变量相关 - 例如.传球'Two'将创造ClassTwo.
我不希望只用一个switch条款是这样的:
function createRelevantClass( desiredSubclassName )
{
let args = [],
newClass;
switch( desiredSubclassName )
{
case 'One' :
newClass = new ClassOne(args);
break;
case 'Two' :
newClass = new ClassTwo(args);
break;
}
return newClass;
}
Run Code Online (Sandbox Code Playgroud)
相反,我想以某种方式能够使用变量名创建构造函数调用.那可能吗?
function createRelevantClass( desiredSubclassName )
{
// desiredSubclassName would be string 'One' or 'Two'
// how to use the 'new' operator or Reflect here to create the …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 SwiftUI TabView 中使用自定义图标。我看不出这段代码有什么问题——我已经包含resizable在图像中,但它没有缩小。
HomeView()
.tag(0)
.tabItem {
VStack {
Image("tab-home")
.resizable()
.aspectRatio(CGSize(width: 20, height: 20), contentMode: .fit)
Text("Home")
}
}
Run Code Online (Sandbox Code Playgroud)
当我查看这个时,图像是全尺寸的。
当Image是 SF 符号时它工作正常。
任何想法,SwiftUI 忍者?
最近Google Chrome的更新似乎导致我的WordPress管理菜单出现问题.
这种情况发生在所有网站上,无论是在本地开发还是在网络上.这些网站在其他浏览器(Firefox和Safari)上显示正常.
取消激活所有插件并更改为默认的Twentyfifteen主题对此显示故障没有影响.
Chrome存在已知问题吗?这可以修复吗?
我刚刚更新到 XCode 11.4,我的一些代码已经停止工作。我@Published在一个ObservableObject. 以前,当我更新结构上的属性时,该didSet方法会触发已发布的属性,但现在情况不再如此。在 Swift 的最新更新中,这种行为是否有可能被设计改变了?
这是一个简单的例子:
import SwiftUI
struct PaddingRect {
var left: CGFloat = 20
var right: CGFloat = 20
}
final class SomeStore : ObservableObject {
@Published var someOtherValue: String = "Waiting for didSet"
@Published var paddingRect:PaddingRect = PaddingRect() {
didSet {
someOtherValue = "didSet fired"
}
}
}
struct ObserverIssue: View {
@ObservedObject var store = SomeStore()
var body: some View {
VStack {
Spacer()
Rectangle()
.fill(Color.yellow)
.padding(.leading, store.paddingRect.left)
.padding(.trailing, …Run Code Online (Sandbox Code Playgroud) 我知道如何使用从子视图中关闭模态,@Environment (\.presentationMode) var presentationMode / self.presentationMode.wrappedValue.dismiss()但这是一个不同的问题。
当您NavigationView在模态窗口中显示多页并浏览了几个页面时,presentationMode对 NavigationView的引用将更改为 NavigationView,因此使用self.presentationMode.wrappedValue.dismiss()简单地弹出最后一个 NavigationView 而不是解除包含的模态。
是否有可能 - 如果有的话 - 如何从 NavigationView 树中的页面关闭包含模式?
这是一个显示问题的简单示例。如果您使用 SwiftUI 创建一个 Xcode Single View 应用程序项目并用ContentView它替换默认代码,它应该无需进一步更改即可工作。
import SwiftUI
struct ContentView: View {
@State var showModal: Bool = false
var body: some View {
Button(action: {
self.showModal.toggle()
}) {
Text("Launch Modal")
}
.sheet(isPresented: self.$showModal, onDismiss: {
self.showModal = false
}) {
PageOneContent()
}
}
}
struct PageOneContent: View {
var body: some …Run Code Online (Sandbox Code Playgroud) 我正在构建一个自定义的 Gutenberg 块,它向 WordPress REST API 发出请求以获取一些帖子。我正在使用axios向 REST 端点发出请求。
当结果返回时,有一个 Post 对象数组,我可以看到 Posts 的标题,但它们都包含在 JSON 对象中,title.rendered并且包含 HTML 实体,例如。
title: {
rendered: "This has a hyphen – oh dear"
}`
Run Code Online (Sandbox Code Playgroud)
我正在尝试<SelectControl>使用结果数据填充 a ,因此无法使用dangerouslySetInnerHTML可以解决实体问题的 React方法。那么在填充选项时如何摆脱这些实体呢?
这是我用来从 REST 响应中填充选项的代码:
const options = response.data.map((post) => {
return {
label: post.title.rendered,
value: post.id,
};
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下语法在WordPress管理类中加载Google Maps API:
add_action('admin_enqueue_scripts', array(&$this, 'load_google_maps'));
Run Code Online (Sandbox Code Playgroud)
...
function load_google_maps()
{
// The actual API key is configured in an options page
$key = get_option('google_maps_api_key');
$gmaps_url = 'http://maps.googleapis.com/maps/api/js?key=' . $key . '&sensor=false';
wp_enqueue_script('google-maps', $gmaps_url, NULL, NULL);
}
Run Code Online (Sandbox Code Playgroud)
WordPress正在将"&"转换为"&".这实际上使Google服务器拒绝了该请求.当我直接在浏览器地址栏中输入"&sensor = false"时,它会正常加载.
我在WordPress trac系统中看到了这种类型的错误:http://core.trac.wordpress.org/ticket/9243但它被视为无效,并且响应请求的管理员以某种方式显示" 038"方法很好.从谷歌的角度来看,这绝对不是好事.
我当然可以获得将HTML作为脚本标记回显的函数,但是如果可能的话我宁愿使用wp_enqueue_script系统.
有人知道这个解决方案吗?
干杯,
RAFF
我使用最新版本的Roots主题(6.1.0 - 2012年10月)以及最新版本的WooCommerce安装了WordPress 3.4.2.
我发现Roots的头方法与WooCommerce存在冲突,而WooCommerce也是一个默认的WordPress头.我最终得到了两个标题 - 一个是我想要的(来自Roots - 固定的Bootstap顶部导航栏),另一个我没有 - 我的网站名称和旧的"另一个WordPress网站"字幕.
如何解决这个问题?
我使用MAMP在本地组建了一个快速的WordPress站点,然后将其检入SVN仓库.然后我检查了我的开发服务器.
除了从Interconnectit 运行搜索和替换工具脚本以更新服务器上数据库中站点的URL 之外,我没有更改任何内容.
最初,我收到500服务器错误.检查日志,我发现这个"SoftException"是因为可以index.php按组写入 - 权限是664.没问题 - 快速更改权限到644排序了.所以现在前线正在发挥作用.
然而,奇怪的是,该网站的管理员方面没有工作.它只是在所有浏览器中产生了无限的重定向循环.
Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
Run Code Online (Sandbox Code Playgroud)
自本地开发版本以来没有任何变化.htaccess文件只是一个标准的WordPress文件.没什么奇怪的......在当地仍然很好.
发生什么了?
wordpress ×5
ios ×3
swiftui ×3
block ×1
class ×1
css ×1
dynamic ×1
ecmascript-6 ×1
google-maps ×1
javascript ×1
mamp ×1
mamp-pro ×1
redirect ×1
rest ×1
ssl ×1
swift ×1
swift5 ×1
woocommerce ×1