小编o01*_*o01的帖子

如何强制重新安装React组件?

假设我有一个具有条件渲染的视图组件:

render(){
    if (this.state.employed) {
        return (
            <div>
                <MyInput ref="job-title" name="job-title" />
            </div>
        );
    } else {
        return (
            <div>
                <MyInput ref="unemployment-reason" name="unemployment-reason" />
                <MyInput ref="unemployment-duration" name="unemployment-duration" />
            </div>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

MyInput看起来像这样:

class MyInput extends React.Component {

    ...

    render(){
        return (
            <div>
                <input name={this.props.name} 
                    ref="input" 
                    type="text" 
                    value={this.props.value || null}
                    onBlur={this.handleBlur.bind(this)}
                    onChange={this.handleTyping.bind(this)} />
            </div>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说employed是真的.每当我将其切换为false而另一个视图呈现时,只会unemployment-duration重新初始化.还会unemployment-reason预先填充值job-title(如果在条件更改之前给出了值).

如果我将第二个渲染例程中的标记更改为如下所示:

render(){
    if (this.state.employed) {
        return (
            <div>
                <MyInput ref="job-title" name="job-title" />
            </div>
        ); …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

84
推荐指数
3
解决办法
7万
查看次数

$(窗口)上的jQuery绑定/取消绑定'scroll'事件

我有这个功能:

function block_scroll(key){
    if (key) {
        $(window).bind("scroll", function(){
            $('html, body').animate({scrollTop:0}, 'fast');
        });
    } else {
        $(window).unbind();
    }
}
Run Code Online (Sandbox Code Playgroud)

第一部分按原样运行,但是当我稍后调用block_scroll(false)时 - 它仍然阻塞.笏呢?

重新编辑 所以我试过......

$(window).unbind("scroll");
Run Code Online (Sandbox Code Playgroud)

......有些困惑.起初它没有用 - 然后它起作用了.

现在我认为它失败了因为我在滚动的时候调用了block_scroll(false).我现在已经多次测试了这个.是的,如果我在脚本运行时没有做任何事情并且调用了block_scroll(false) - 它确实有效.但是,如果我在调用它时滚动它就不会.

jquery bind unbind

45
推荐指数
2
解决办法
11万
查看次数

YouTube iFrame API"setPlaybackQuality"或"suggestedQuality"无效

我通过Youtube iFrame API在视频上设置质量设置时遇到了一些问题.这是我的代码:

var player;

player = new YT.Player('player', {
    height: '490',
    width: '725',
    videoId: yturl,
    /* setPlaybackQuality: 'hd720', <-- DOES NOT WORK */
    /* suggestedQuality: 'hd720',   <-- DOES NOT WORK */
    events: {
        'onReady': onPlayerReady
    }
});

function onPlayerReady(event) {
    player.setPlaybackQuality('hd720');       // <-- DOES NOT WORK
    event.target.setPlaybackQuality('hd720'); // <-- DOES NOT WORK
    player.setVolume(100);                    // <-- DOES WORK
    console.log(player.getPlaybackQuality()); // <-- Prints 'small' to console
    event.target.playVideo();
}
Run Code Online (Sandbox Code Playgroud)

有趣的是,我的呼吁player.setPlaybackQualityevent.target.setPlaybackQuality没有给出任何错误.它看起来好像玩家忽略了它.例如,对player.setSuggestedQuality(不存在的函数)的调用会按预期引发错误.

我已经尝试了API参考中所述的所有有效字符串参数('medium','large','hd720'等).他们都没有工作.

任何人对我应该如何设置这个属性有任何建议?

javascript youtube api iframe

22
推荐指数
2
解决办法
2万
查看次数

通过虚拟机上的localhost:port访问node.js/grunt服务器

我正在通过Grunt在端口9000上本地运行node.js服务器.我还有一个运行的虚拟机(vmware),但我无法通过它访问节点服务器.我已经将VM配置为通过localhost访问主机上的Apache服务器,但是:9000给出了'not found'.

有人知道怎么做吗?

virtual-machine node.js gruntjs

20
推荐指数
1
解决办法
1万
查看次数

处理C中的特殊字符(UTF-8编码)

我正在用C编写一个小应用程序来读取一个简单的文本文件,然后逐个输出这些行.问题是文本文件包含特殊字符,如Æ,Ø和Å等.当我在终端中运行程序时,这些字符的输出用"?"表示.

有一个简单的解决方案吗?

c macos terminal encoding utf-8

18
推荐指数
1
解决办法
2万
查看次数

无法更新RubyGems

我在将RubyGems从1.1.1版更新到最新版时遇到了困难.我尝试过以下方法:

宝石更新

结果:

更新已安装的gems
批量更新Gem源索引:http://gems.rubyforge.org/
无需更新

gem install ruby​​gems-update

结果:

批量更新Gem源索引:http://gems.rubyforge.org/
批量更新Gem源索引:http
://gems.rubyforge.org/错误:安装rubygems-update时出错:
    rubygems-update需要构建器(> = 0)

gem install ruby​​gems-update update_rubygems

结果:

批量更新Gem源索引:http://gems.rubyforge.org/
批量更新Gem源索引:http
://gems.rubyforge.org/错误:安装rubygems-update时出错:
    rubygems-update需要构建器(> = 0)
错误:无法在本地或存储库中找到update_rubygems

然后我检查,如建议的theIV上类似的问题,我是否有http://gems.rubyforge.org/在我的远程数据源.这是宝石环境:

RubyGems环境:
  - RUBYGEMS版本:1.1.1
  - RUBY版本:1.8.6(2008-08-11 patchlevel 287)[universal-darwin9.0]
  - 安装目录:/ Library/Ruby/Gems /1.8
 - RUBY EXECUTABLE:/系统/库/框架/ Ruby.framework/Versions/1.8/usr/bin/ruby
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-9
  - GEM路径:
    -
    / Library/ Ruby/Gems/1.8 - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby​​/gems/1.8
  - GEM CONFIGURATION:
    - …

macos rubygems ruby-on-rails

11
推荐指数
3
解决办法
2万
查看次数

jQuery每一个

var slides = $(".promo-slide");
slides.each(function(key, value){
    if (key == 1) {
        this.addClass("first");
    }
});
Run Code Online (Sandbox Code Playgroud)

为什么我会收到错误说:

Uncaught TypeError: Object #<HTMLDivElement> has no method 'addClass'
Run Code Online (Sandbox Code Playgroud)

从上面的代码?

javascript jquery

9
推荐指数
1
解决办法
3万
查看次数

Bootstrap选择的自定义样式

我发现选择的Twitter Bootstrap的下拉列表非常难看,如何仅为select小部件停用Bootstrap?或者是否可以自定义选择下拉列表的方式?

twitter-bootstrap

8
推荐指数
2
解决办法
5万
查看次数

使用HH:MM:SS格式(C编程)进入字符串的时间

我需要将"HH:MM:SS"格式的当前时间转换为字符数组(字符串),以便稍后我可以输出结果 printf("%s", timeString);

我对btw timevaltime_t类型很困惑,所以任何解释都很棒:)

编辑:所以我尝试使用strftime等,它有点工作.这是我的代码:

time_t current_time;
struct tm * time_info;
char timeString[8];

time(&current_time);
time_info = localtime(&current_time);

strftime(timeString, 8, "%H:%M:%S", time_info);
puts(timeString);
Run Code Online (Sandbox Code Playgroud)

但输出是这样的:"13:49:53a ?? J`aS?"

最后" a ?? J`aS? "发生了什么?

c string time time-t

6
推荐指数
2
解决办法
4万
查看次数

如何让 require.context 与 Create React App with/withou Craco 一起工作?

我试图在运行时通过require.context我的 CRA(使用 Typescript)项目执行一些要求,但我只收到以下类型的错误:

TypeError: __webpack_require__(...).context 不是函数

关键依赖:require函数的使用方式无法静态提取依赖

我在某处读到这现在需要通过 Babel 或cra-rewired. 好吧,我已经在使用 Craco 来启用 Less-support,但我不知道如何添加require.context到我的 Craco 配置中。

有人知道怎么做吗?

更新:这就是我调用 require.context 的方式:

const packagesDirectory = path.join(__dirname, '../../../../packages');
const textDataContext = require.context(packagesDirectory, true, /(\w+)\.(\w+)\.(mdx?)/);
Run Code Online (Sandbox Code Playgroud)

更新 2:

正如该线程中的一些评论所暗示的那样,我尝试babel-plugin-require-context-hook像这样添加到我的应用程序中:

// craco.config.js

const CracoLessPlugin = require('craco-less');

module.exports = {
    plugins: [
        {plugin: CracoLessPlugin}
    ],
    babel: {
        plugins: ['require-context-hook']
    }
};
Run Code Online (Sandbox Code Playgroud)

然后我试过这样打电话require.context

// myfile.js

import registerRequireContextHook from 'babel-plugin-require-context-hook/register';
registerRequireContextHook();

const packagesDirectory = path.join(__dirname, …
Run Code Online (Sandbox Code Playgroud)

javascript typescript webpack create-react-app craco

6
推荐指数
1
解决办法
4063
查看次数