javascript - 如何使用 React 创建 “twitter like” 剩余字符数

标签 javascript twitter-bootstrap twitter reactjs reactive-programming

我希望为文本区域制作一个带有“目标字符数”的 react 计数器,就像 Twitter 那样,随着用户输入而减少。

例如,在“元描述”字段中,目标字符数为 160。因此,如果该字段为空,则数字将为 160。随着用户键入,计数会随着添加到字符中的每个字符而减少。输入字段直到达到零。

如果计数高于目标,数字将以红色书写,前面有一个减号(同样,就像 Twitter 一样)。

实现此目的的一种方法是监听 textarea 上的 onChange 事件,并更新组件的状态(具有 textarea 和计数器),然后使用它来计算长度并渲染剩余的字符计数器。

有没有更有效的方法?

最佳答案

这是您想要的粗略版本。当 chars_left 低于零时不处理,但应该很容易实现。

var TwitterInput = React.createClass({
    getInitialState: function() {
        return {
            chars_left: max_chars
        };
    },
    handleChange(event) {
        var input = event.target.value;
        this.setState({
            chars_left: max_chars - input.length
        });
    },
    render: function() {
        return (
            <div>
                <textarea onChange={this.handleChange.bind(this)}></textarea>
                <p>Characters Left: {this.state.chars_left}</p>
            </div>
        );
    }
});

https://jsfiddle.net/terda12/b0y4jL6t

关于javascript - 如何使用 React 创建 “twitter like” 剩余字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079204/

相关文章:

php - colorbox 和 html 数组中的 ajax

javascript - 如何在 Karma 中配置 System.js 以测试依赖于 moment.js 的代码

html - Bootstrap 3 Affix 侧边栏无法正常工作

javascript - Bootstrap/Css 垂直导航栏应显示子菜单 onclick 而不是悬停

ios - 在iOS 6中获取真实的Twitter用户名

android - 在 Android 上通过 native Twitter 应用程序打开 Twitter 推文

javascript - 输入字符 Controller

javascript - 在 COR 响应期间出现服务器 500 错误

html - Bootstrap 按钮覆盖

hadoop - 使用水槽获取Twitter数据