我react用来构建组件库。我需要将一个index.js组件中的所有组件导入。
像这样:
MyComponents/
Button.js
Label.js
index.js
Run Code Online (Sandbox Code Playgroud)
在index.js我尝试下一步的内部:
// this export nothing
export {default} from './Button';
// this tells me about syntax error
export default from './Button';
Run Code Online (Sandbox Code Playgroud)
我发现只有这个解决方案有效
import Button from './Button';
export default Button;
Run Code Online (Sandbox Code Playgroud)
但是我发现一些React Component库使用了我上面(export default from './Button')提到的语法-并且它以某种方式起作用。看起来他们用一些东西babel-plugin-transform-*来做到这一点。
请找到我以找到如何将我的两行导入导出转换为的一行export ... from ...。谢谢。
PS最后,我需要这样做: import Button from './MyComponents';
当我只使用这条路线和我的所有其他路线时,那些静态文件很好用:
var public_dir = path.join(__dirname, 'public');
app.use('/public', express.static(public_dir));
Run Code Online (Sandbox Code Playgroud)
但是当我在下面添加这些行时 - 所有请求都被这个路由器捕获(不是前一个):
app.get('/*', function(req, res){
res.redirect('/#!' + req.path);
});
Run Code Online (Sandbox Code Playgroud)
这对我来说很奇怪,因为/public定义是第一位的.但所有请求都转到最后定义的/*请求处理程序.
现在,如果我尝试打开页面,http://127.0.0.1:3000/public/website/application.js我将被重定向到http://127.0.0.1:3000/#!/public/website/application.js.为什么会这样,以及如何以最佳方式解决这种情况?
非常感谢!
解决方案很简单.我在中间件列表中没有工作声明.
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)
这会产生网址路由问题.但奇怪的是node.js没有告诉我中间件的"错误设置".
我试图为JavaScript创建以下语法:
var user = new Class({
name: 'No name',
sayHello: function () {
console.log(self.name);
}
});
user.sayHello(); // will print "undefined" because "self" isn't visible
Run Code Online (Sandbox Code Playgroud)
我创建了以下实现Class:
function Class (_properties) {
var self = this;
// copy all properties and methods to this class
for (var _property_name in _properties) {
self[_property_name] = _properties[_property_name];
}
}
Run Code Online (Sandbox Code Playgroud)
但是问题self在于我希望在每个课程中使用。该self.name会是不确定的,因为self是一个[Window object]。
问题:如何修改我的代码以self在类实例的所有函数中使用?self如果要从外部上下文调用该函数,则需要不删除上下文。
预期的结果(我的意思是上面的代码应该像下面的代码一样执行):
function Class (_properties) {
var self …Run Code Online (Sandbox Code Playgroud) 我有一个Django模型ManyToManyField.我需要要求用户在此字段中选择至少一个M2M值.
我试图设置blank=False为M2M字段,但它没有帮助.
class Skill(models.Model):
name = models.CharField(max_length=200)
class PersonSkills(models.Model):
person = models.ForeignKey('Person')
skill = models.ForeignKey('Skill')
class Person(models.Model):
name = models.CharField(max_length=200)
skills = models.ManyToManyField('Skill', through='PersonSkills')
p = Person(name='Bob')
p.save()
# success, but I expect that this should throw ValidationError, because I didn't select at least one Skill for this person
Run Code Online (Sandbox Code Playgroud)
我可以使用自Form定义定义或使用模型的覆盖save()方法来解决这种情况Person.
是否可以通过设置选项阻止创建Person没有至少一个Skill选定的ManyToManyField?或者我需要创建自定义逻辑来处理这种情况?谢谢.
我用Django 1.7和Python 3.4
更新1.如何创建ModelForm控制M2M?因为在cleaned_data我只有Person …