React Flux项目中的React-tagsinput模块实现;我的代码中是否存在标记功能错误?

时间:2017-05-11 07:53:18

标签: git reactjs react-jsx flux reactjs-flux

我尝试了一些不同的实现(你可以看到它们被注释掉了)。

一旦我启动项目,屏幕就会显示一个输入文本框,其中写有'tag1 tag2' - 因为这就是我将它们初始化为的内容;但是当我试图操纵它们时,我无法做任何事情(删除/空格键/添加另一个字母)它们被替换为

[object Object]

在文本字段中然后我不能做任何事情,除了用arrowkeys返回它;但如果我尝试其他任何东西,它会把光标推回到前面。

我尝试了一些变体,如:
    TagsCom.React.createElement(“text”,null,...)或者只是     TagsCom.createElement(“text”,null,...)
甚至只是用TagsInput替换TagsCom,但到目前为止唯一远程工作的代码行是:

<TagsInput value={this.state.tags} onChange={this.handleChange} />

虽然这解决了对象问题,但它仍然是静态文本而不像标记

这是我更新的组件代码:

var React      = require('react');
var ReactDOM   = require('react-dom');
var TagsInput1 = require('react-tagsinput');
var TagsCom    = require('./react-tagsinput.js');
//var TagsCSS  = require('react-tagsinput/react-tagsinput.css');

var TagsComponent = React.createClass
({
    displayName    : "TagsComponent",
    getInitialState: function()
    {
        return {
            tags: ["tag1", "tag2"]
        };
    },

    saveTags: function (){
        console.log("tags: ", this.state.tags.join(", "));
    },

    handleChange: function(event){
    this.setState({tags: event.target.value});
    },

    render: function ()
    {

      <TagsInput value={this.state.tags} onChange={this.handleChange} />

    }
});
module.exports = TagsComponent;

这里是react-tagsinput模块的git链接,它包含所有其他文件https://github.com/olahol/react-tagsinput

2 个答案:

答案 0 :(得分:0)

input代码的onChange回调只有一个参数 event ,而不是value,正如您所期待的那样。

看起来应该是这样的;

handleChange: function(event){
        this.setState({tags: event.target.value});
    },

答案 1 :(得分:0)

经过多次反复试验,我发现了正确的渲染功能 - 它将TagsInput重命名为ReactTagsInput,并将onChange参数保留为&#39; value&#39;:

tf.TensorArray(dtype=tf.float32,size=2)