如何在验证器中引用表单字段的值或在flutter中引用另一个表单字段的值

时间:2020-06-15 08:42:15

标签: flutter

在下面的代码中,我正在尝试针对新密码字段的已保存值测试重复密码的值。此值保存到变量_newPW。但是在“重复密码”文本表单字段中,_newPW变量始终为空。

我应该怎么做?我只想验证两个新密码是否匹配。谢谢。

          TextFormField(
            obscureText: true,
            validator: (value) {
              if (value.isEmpty) {
                return 'please enter the new password';
              }
              return null;
            },
            onSaved: (value) {
              _newPW = value;
            },
            decoration: _textFormFieldDecoration(
              hintText: 'new password',
              padding: 8.0,
            ),
          ),

          TextFormField(
            obscureText: true,
            validator: (value) {
              if (value.isEmpty) {
                return 'please enter the new password';
              } else if (value != _newPW) {
                print('value = $value');
                print('newPW = $_newPW');           // <-- _newPW variable is blank
                return 'new passwords must match';
              }
              return null;
            },
            decoration: _textFormFieldDecoration(
              hintText: 'repeat new password',
              padding: 8.0,
            ),
          ),

1 个答案:

答案 0 :(得分:1)

您可以在下面复制粘贴运行完整代码
您可以使用let fileString = "" let separator = "," let fileType = "csv" let file = `fileExample.${fileType}` Object.keys(jsonObject[0]).forEach(value=>fileString += `${value}${separator}`) fileString = fileString.slice(0, -1) fileString += "\n" jsonObject.forEach(transaction=>{ Object.values(transaction).forEach(value=>fileString += `${value}${separator}`) fileString = fileString.slice(0, -1) fileString += "\n" }) fs.writeFileSync(file, fileString, 'utf8')

onChanged

工作演示

enter image description here

完整代码

onChanged: (value) {
              _newPW = value;
            },